Skip to content
This repository has been archived by the owner on Oct 1, 2023. It is now read-only.

api.post function from example.py gives me the following error #51

Open
kouroshshafi opened this issue Jul 18, 2023 · 4 comments
Open

Comments

@kouroshshafi
Copy link

Login status: Success
[ERROR] Failed to decode response as JSON
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/threads_api/src/http_sessions/aiohttp_session.py", line 36, in post
resp = json.loads(text)
File "/usr/local/Cellar/python@3.10/3.10.12_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/json/init.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/local/Cellar/python@3.10/3.10.12_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/Cellar/python@3.10/3.10.12_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/kouroshshafi/Desktop/twitter-threads-kourosh/twitter-threads.py", line 214, in
asyncio.run(post()) # Posts a message.
File "/usr/local/Cellar/python@3.10/3.10.12_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/Cellar/python@3.10/3.10.12_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/Users/kouroshshafi/Desktop/twitter-threads-kourosh/twitter-threads.py", line 144, in post
result = await api.post("Hello World API test!")
File "/usr/local/lib/python3.10/site-packages/threads_api/src/threads_api.py", line 107, in wrapper
return await func(self, *args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/threads_api/src/threads_api.py", line 1105, in post
res = await self._private_post(url=post_url, headers=headers,data=payload)
File "/usr/local/lib/python3.10/site-packages/threads_api/src/threads_api.py", line 107, in wrapper
return await func(self, *args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/threads_api/src/threads_api.py", line 166, in _private_post
return await self._auth_session.post(**kwargs)
File "/usr/local/lib/python3.10/site-packages/threads_api/src/http_sessions/aiohttp_session.py", line 42, in post
raise Exception('Failed to decode response as JSON')
Exception: Failed to decode response as JSON
ERROR:Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x12549f100>
ERROR:Unclosed connector
connections: ['[(<aiohttp.client_proto.ResponseHandler object at 0x1254afb20>, 69683.022677739)]']
connector: <aiohttp.connector.TCPConnector object at 0x12549f070>

@Danie1
Copy link
Owner

Danie1 commented Jul 18, 2023

Hey, please run the script with the environment variable LOG_LEVEL set to DEBUG. It will print the request+responses, and it sometimes hints on the issue.

I am speculating the login did not really succeed, despite the message.

I will gladly assist once you have the additional details.

@Danie1
Copy link
Owner

Danie1 commented Jul 18, 2023

Please re-open with additional info if still reproduces after version v1.1.13 (https://github.com/Danie1/threads-api/releases/tag/v1.1.13). It contains improvements in this area, so at the very least it will be easier to troubleshoot.

@Danie1 Danie1 closed this as completed Jul 18, 2023
@kouroshshafi
Copy link
Author

Here is the error I get

[ERROR] Failed to decode response [

    <title>
              Page Not Found &bull; Instagram
            </title>

    
    <meta name="robots" content="noimageindex, noarchive">
    <meta name="apple-mobile-web-app-status-bar-style" content="default">
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="theme-color" content="#ffffff">
    
        <meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)">
    
    <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, viewport-fit=cover">
    <link rel="manifest" href="/data/manifest.json">

    
    
    

    <script type="text/javascript">
    (function() {

var docElement = document.documentElement;
var classRE = new RegExp('(^|\s)no-js(\s|$)');
var className = docElement.className;
docElement.className = className.replace(classRE, '$1js$2');
})();
</script>
<script type="text/javascript">
(function() {
if ('PerformanceObserver' in window && 'PerformancePaintTiming' in window) {
window.__bufferedPerformance = [];
var ob = new PerformanceObserver(function(e) {
window.__bufferedPerformance.push.apply(window.__bufferedPerformance,e.getEntries());
});
ob.observe({entryTypes:['paint']});
}

window.__bufferedErrors = [];
window.onerror = function(message, url, line, column, error) {
window.__bufferedErrors.push({
message: message,
url: url,
line: line,
column: column,
error: error
});
return false;
};
window.__initialData = {
pending: true,
waiting: []
};
function asyncFetchSharedData(extra) {
var sharedDataReq = new XMLHttpRequest();
sharedDataReq.onreadystatechange = function() {
if (sharedDataReq.readyState === 4) {
if(sharedDataReq.status === 200){
var sharedData = JSON.parse(sharedDataReq.responseText);
window.__initialDataLoaded(sharedData, extra);
}
}
}
sharedDataReq.open('GET', '/data/shared_data/', true);
sharedDataReq.send(null);
}
function notifyLoaded(item, data) {
item.pending = false;
item.data = data;
for (var i = 0;i < item.waiting.length; ++i) {
item.waiting[i].resolve(item.data);
}
item.waiting = [];
}
function notifyError(item, msg) {
item.pending = false;
item.error = new Error(msg);
for (var i = 0;i < item.waiting.length; ++i) {
item.waiting[i].reject(item.error);
}
item.waiting = [];
}
window.__initialDataLoaded = function(initialData, extraData) {
if (extraData) {
for (var key in extraData) {
initialData[key] = extraData[key];
}
}
notifyLoaded(window.__initialData, initialData);
};
window.__initialDataError = function(msg) {
notifyError(window.__initialData, msg);
};
window.__additionalData = {};
window.__pendingAdditionalData = function(paths) {
for (var i = 0;i < paths.length; ++i) {
window.__additionalData[paths[i]] = {
pending: true,
waiting: []
};
}
};
window.__additionalDataLoaded = function(path, data) {
if (path in window.__additionalData) {
notifyLoaded(window.__additionalData[path], data);
} else {
console.error('Unexpected additional data loaded "' + path + '"');
}
};
window.__additionalDataError = function(path, msg) {
if (path in window.__additionalData) {
notifyError(window.__additionalData[path], msg);
} else {
console.error('Unexpected additional data encountered an error "' + path + '": ' + msg);
}
};

})();
</script><script type="text/javascript">

/*
Copyright 2018 Google Inc. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

(function(){function g(a,c){b||(b=a,f=c,h.forEach(function(a){removeEventListener(a,l,e)}),m())}function m(){b&&f&&0<d.length&&(d.forEach(function(a){a(b,f)}),d=[])}function n(a,c){function k(){g(a,c);d()}function b(){d()}function d(){removeEventListener("pointerup",k,e);removeEventListener("pointercancel",b,e)}addEventListener("pointerup",k,e);addEventListener("pointercancel",b,e)}function l(a){if(a.cancelable){var c=performance.now(),b=a.timeStamp;b>c&&(c=+new Date);c-=b;"pointerdown"==a.type?n(c,
a):g(c,a)}}var e={passive:!0,capture:!0},h=["click","mousedown","keydown","touchstart","pointerdown"],b,f,d=[];h.forEach(function(a){addEventListener(a,l,e)});window.perfMetrics=window.perfMetrics||{};window.perfMetrics.onFirstInputDelay=function(a){d.push(a);m()}})();
</script>

                <!-- Icons for add to home screen flow  -->
                <link rel="apple-touch-icon-precomposed" sizes="76x76" href="/static/images/ico/apple-touch-icon-76x76-precomposed-refresh.png/c2433a4e3bc6.png">
                <link rel="apple-touch-icon-precomposed" sizes="120x120" href="/static/images/ico/apple-touch-icon-120x120-precomposed-refresh.png/073826ab4e03.png">
                <link rel="apple-touch-icon-precomposed" sizes="152x152" href="/static/images/ico/apple-touch-icon-152x152-precomposed-refresh.png/a2c0c3c558c0.png">
                <link rel="apple-touch-icon-precomposed" sizes="167x167" href="/static/images/ico/apple-touch-icon-167x167-precomposed-refresh.png/7c0942b9f53c.png">
                <link rel="apple-touch-icon-precomposed" sizes="180x180" href="/static/images/ico/apple-touch-icon-180x180-precomposed-refresh.png/216ba3a34992.png">
                <link rel="apple-touch-icon" sizes="76x76" href="/static/images/ico/apple-touch-icon-76x76-a2h-refresh.png/0c8b5dfc327e.png">
                <link rel="apple-touch-icon" sizes="120x120" href="/static/images/ico/apple-touch-icon-120x120-a2h-refresh.png/d17a02b9cbbc.png">
                <link rel="apple-touch-icon" sizes="152x152" href="/static/images/ico/apple-touch-icon-152x152-a2h-refresh.png/05d118183ea9.png">
                <link rel="apple-touch-icon" sizes="167x167" href="/static/images/ico/apple-touch-icon-167x167-a2h-refresh.png/8be4c958c827.png">
                <link rel="apple-touch-icon" sizes="180x180" href="/static/images/ico/apple-touch-icon-180x180-a2h-refresh.png/e7add10b677a.png">
            
            
                
                    <link rel="icon" sizes="192x192" href="/static/images/ico/favicon-refresh-192.png/7dc5a797e88b.png">
                
            
        
        
                
                    <link rel="shortcut icon" type="image/x-icon" href="/static/images/ico/favicon-refresh.ico/eb03b7b3286b.ico">
                
            
        
        

    <style type="text/css">/* @generated 
  • DO NOT CHANGE THIS FILE. Instead, modify the non-build version of "main.css"

  • then run "yolo css"
    */
    body{-webkit-font-smoothing:antialiased;background-color:#fafafa;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;margin:0}.client-root{font-size:14px}a{text-decoration:none}.-cx-PRIVATE-Page__body__,.-cx-PRIVATE-Page__main__,.-cx-PRIVATE-Page__root__{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.-cx-PRIVATE-Page__root__{height:100vh}.-cx-PRIVATE-Page__body__,.-cx-PRIVATE-Page__main__{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.-cx-PRIVATE-Page__main__{margin-top:137px;position:relative}@media screen and (max-width:990px){.-cx-PRIVATE-Page__main__{display:block;margin-top:0}}.-cx-PRIVATE-NavBar__root__{background-color:#fff;border-bottom:1px solid #efefef;height:77px;position:fixed;top:0;width:100%;z-index:100}.-cx-PRIVATE-NavBar__profilePic__{display:none}.-cx-PRIVATE-NavBar__username__{color:#003569;display:inline!important;float:right;font-weight:400;margin-right:2px;margin-top:12px}.-cx-PRIVATE-NavBar__signIn__{display:inline-block;float:right;margin-right:2px;margin-top:12px}.-cx-PRIVATE-NavBar__signInText__{color:#003569;font-weight:400}.-cx-PRIVATE-NavBar__logo__{background-image:url(/static/images/branding/logoWhiteoutLockup.png/3a62b1a95da3.png);background-size:100%;height:35px;left:16px;position:absolute;text-indent:-9999em;top:6px;width:176px}.-cx-PRIVATE-NavBar__logo__ a{display:block;height:100%;width:100%}@media screen and (-webkit-min-device-pixel-ratio:1.5),screen and (min-resolution:1.5dppx){.-cx-PRIVATE-NavBar__logo__{background-image:url(/static/images/branding/logoWhiteoutLockup@2x.png/43608c988939.png)}}.-cx-PRIVATE-NavBar__logoGroup__{left:16px;position:absolute;top:6px}.-cx-PRIVATE-NavBar__logoGroup__ .-cx-PRIVATE-NavBar__logo__{position:static}.-cx-PRIVATE-NavBar__wrapper__{margin:0 auto;max-width:1026px;padding:0 16px;position:relative}.-cx-PRIVATE-NavBar__topBarActions__,.-cx-PRIVATE-SidebarLayout__content__ li{list-style:none}.-cx-PRIVATE-NavBar__dropdown__,.-cx-PRIVATE-NavBar__topBarLeft__,.-cx-PRIVATE-SidebarLayout__content__ .separator,.-cx-PRIVATE-SidebarLayout__content__ .subtitle{display:none}.-cx-PRIVATE-SidebarLayout__content__{border-right:1px solid #efefef;height:100%;width:220px}.-cx-PRIVATE-SidebarLayout__content__ ul{margin:0;padding:0}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__content__{margin:0 px;border:0;width:100%}.-cx-PRIVATE-SidebarLayout__content__ ul{display:none}}.-cx-PRIVATE-SidebarLayout__root__{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;pointer-events:none;position:absolute;width:100%;z-index:1}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__root__{height:auto;padding-bottom:0;padding-top:78px;position:static}}.-cx-PRIVATE-SidebarLayout__contentWrapper__,.-cx-PRIVATE-SidebarLayout__navWrapper__{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin:0 auto;position:relative;width:992px}@media screen and (min-width:991px){.-cx-PRIVATE-SidebarLayout__navWrapper__{height:100%}}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__navWrapper__{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;height:auto;min-height:0;padding:0;width:100%}}.-cx-PRIVATE-SidebarLayout__nav__{float:left;height:100%;padding-right:0;pointer-events:initial;width:256px}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__nav__{float:none;display:block;margin:0!important;background:0 0;border:0;width:100%}}.-cx-PRIVATE-SidebarLayout__contentWrapper__{background-color:#fff;border:1px solid #efefef;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 16px 20px}@media screen and (min-width:991px){.-cx-PRIVATE-SidebarLayout__contentWrapper__{border:1px solid #efefef;border-radius:3px}}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__contentWrapper__{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.-cx-PRIVATE-SidebarLayout__pageContent__ .-cx-PRIVATE-SidebarLayout__contentWrapper__{padding:0 10px}}.-cx-PRIVATE-SidebarLayout__pageContent__{color:#262626;margin-left:205px;padding:30px 50px}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__pageContent__{margin-left:0;margin-right:0;padding:20px 0}}.-cx-PRIVATE-SidebarLayout__pageContent__>:first-child{margin-top:0}.-cx-PRIVATE-SidebarLayout__pageContent__ a{color:#003569}.-cx-PRIVATE-SidebarLayout__pageContent__ h1{font-size:32px;font-weight:400;margin-bottom:20px;margin-top:28px}.-cx-PRIVATE-SidebarLayout__pageContent__ h2{font-size:24px;font-weight:400;margin-bottom:12px;margin-top:28px}.-cx-PRIVATE-SidebarLayout__pageContent__ h3{font-weight:600;margin-bottom:12px;margin-top:28px}.-cx-PRIVATE-SidebarLayout__pageContent__ li{padding-left:8px}.-cx-PRIVATE-SidebarLayout__pageContent__ li:not(:first-child){margin-top:8px}.-cx-PRIVATE-SidebarLayout__pageContent__ pre{white-space:pre-wrap}.-cx-PRIVATE-Navigation__header__{color:#999;font-size:16px;font-weight:initial;margin:0;padding:16px;text-transform:uppercase}@media screen and (max-width:990px){.-cx-PRIVATE-Navigation__header__:first-child{display:block}.-cx-PRIVATE-Navigation__header__:not(:first-child){display:none}.-cx-PRIVATE-Navigation__header__ i{float:left;width:22px;height:18px;margin-right:8px;margin-left:10px;background:url(/static/images/glyphs/disclosure-down@2x.png/9ae8409fbb3a.png) no-repeat center;background-size:14px 14px}.-cx-PRIVATE-SidebarLayout__content__.active .-cx-PRIVATE-Navigation__header__ i{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}.-cx-PRIVATE-Navigation__navLink__,.-cx-PRIVATE-Navigation__navLink__:active,.-cx-PRIVATE-Navigation__navLink__:hover,.-cx-PRIVATE-Navigation__navLink__:visited{border-left:2px solid transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:#262626;font-size:16px;display:block;padding:16px 16px 16px 30px;width:100%}.-cx-PRIVATE-Navigation__navLink__:hover{border-left-color:#dbdbdb}.-cx-PRIVATE-Navigation__active__ .-cx-PRIVATE-Navigation__navLink__{border-left-color:#262626;font-weight:600}.-cx-PRIVATE-Footer__root__{font-size:12px;height:77px}.-cx-PRIVATE-Footer__copyright__{color:#262626;display:inline-block;float:right;font-weight:600;margin-top:20px;text-transform:uppercase}.-cx-PRIVATE-Footer__nav__{display:inline-block}@media screen and (max-width:990px){.-cx-PRIVATE-Footer__copyright__{text-align:center;width:100%}}.-cx-PRIVATE-Footer__navItems__{margin:20px 0;padding:0;text-align:center}.-cx-PRIVATE-Footer__navItems__ li{display:inline-block;list-style:none}.-cx-PRIVATE-Footer__navItems__ li:not(:first-child){margin-left:15px}.-cx-PRIVATE-Footer__navItems__ a,.-cx-PRIVATE-Footer__navItems__ a:active,.-cx-PRIVATE-Footer__navItems__ a:focus,.-cx-PRIVATE-Footer__navItems__ a:hover,.-cx-PRIVATE-Footer__navItems__ a:visited{color:#003569;font-weight:600;text-transform:uppercase}.-cx-PRIVATE-Footer__wrapper__{margin-left:auto;margin-right:auto;max-width:1026px;padding:0 20px}.-cx-PRIVATE-ErrorPage__errorContainer__{text-align:center}@media (max-width:990px){.-cx-PRIVATE-ErrorPage__errorContainer__{padding:100px 40px 0}}.-cx-PRIVATE-ErrorPage__errorContainer__ a,.-cx-PRIVATE-ErrorPage__errorContainer__ a:visited{color:#003569}.-cx-PRIVATE-Linkshim__followLink__{background-color:#fff;color:#3897f0;border:1px solid #3897f0;border-radius:3px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;padding:8px;font:inherit;font-weight:700;width:90%}@media (min-width:736px){.-cx-PRIVATE-Linkshim__followLink__{width:10%}}.-cx-PRIVATE-Linkshim__followLink__:active{opacity:.5}.-cx-PRIVATE-Linkshim__followLink__:focus{color:#1372cc;border:1px solid #1372cc}.-cx-PRIVATE-GatedContentPage__userAvatarContainer__{height:70px;text-align:center}.-cx-PRIVATE-GatedContentPage__userAvatar__{border-radius:50%;height:100%;width:auto}</style>

    <script type="text/javascript" src="/static/scripts/jquery.js/a4e77326039e.js" crossorigin="anonymous"></script> <script type="text/javascript" src="/static/scripts/bluebar.js/203583927eba.js" crossorigin="anonymous"></script>
        <div class="root -cx-PRIVATE-Page__root -cx-PRIVATE-Page__root__">
            
                <div class="page -cx-PRIVATE-Page__body -cx-PRIVATE-Page__body__">
                    
                        
                            <header class="top-bar top-bar-new -cx-PRIVATE-NavBar__root -cx-PRIVATE-NavBar__root__">
<div class="top-bar-wrapper -cx-PRIVATE-NavBar__wrapper -cx-PRIVATE-NavBar__wrapper__">
    <div class="logo -cx-PRIVATE-NavBar__logo -cx-PRIVATE-NavBar__logo__"><a href="/">Instagram</a></div>

    <div class="top-bar-left -cx-PRIVATE-NavBar__topBarLeft -cx-PRIVATE-NavBar__topBarLeft__">
        <ul class="top-bar-actions">
            <li>
                <a class="top-bar-home" href="/" label=Home><i></i></a>
            </li>
        </ul>
    </div>

    
        <div class="top-bar-right account-state" id="top_bar_right">
            <ul class="top-bar-actions -cx-PRIVATE-NavBar__topBarActions -cx-PRIVATE-NavBar__topBarActions__">
                
                
                <li id="link_profile" class="link-profile has-dropdown -cx-PRIVATE-NavBar__profile -cx-PRIVATE-NavBar__profile__">
                    <a href="/kouroshshaf/">
                        <strong class="-cx-PRIVATE-NavBar__username -cx-PRIVATE-NavBar__username__">kouroshshaf</strong>
                    </a>

                </li>
                
            </ul>
        </div>
    
</div>
                    <div class="main -cx-PRIVATE-Page__main -cx-PRIVATE-Page__main__">
                        
<div class="error-container -cx-PRIVATE-ErrorPage__errorContainer -cx-PRIVATE-ErrorPage__errorContainer__">


<h2>Sorry, this page isn&#39;t available.</h2>

<p>
    The link you followed may be broken, or the page may have been removed.
    <a href="/">Go back to Instagram.</a>
</p>



</div>

                    </div> <!-- .main -->
                    

                </div> <!-- .page -->

                
                <footer class="page-footer -cx-PRIVATE-Footer__root -cx-PRIVATE-Footer__root__" role="contentinfo">
                    <div class="wrapper -cx-PRIVATE-Footer__wrapper -cx-PRIVATE-Footer__wrapper__">
                        <nav class="-cx-PRIVATE-Footer__nav -cx-PRIVATE-Footer__nav__">
                            <ul class="-cx-PRIVATE-Footer__navItems -cx-PRIVATE-Footer__navItems__">
                                <li><a href="/about/us/">About us</a></li>
                                <li><a href="https://help.instagram.com/">Support</a></li>
                                <li><a href="https://about.instagram.com/blog/">Press</a></li>
                                <li><a href="">API</a></li>
                                <li><a href="https://about.instagram.com/about-us/careers">Jobs</a></li>
                                <li><a href="/legal/privacy/">Privacy</a></li>
                                <li><a href="/legal/terms/">
                                  
                                      Terms
                                  
                                </a></li>
                                
                            </ul>
                        </nav>

                        <p class="copyright -cx-PRIVATE-Footer__copyright -cx-PRIVATE-Footer__copyright__">&copy; 2023 Instagram</p>
                    </div>
                </footer>
                
            
            <div id="reactModalMountPoint"></div>
        </div> <!-- .root -->
    
    


    
        

        
    

    <script type="text/javascript">

(function(){
function normalizeError(err) {
var errorInfo = err.error || {};
var getConfigProp = function(propName, defaultValueIfNotTruthy) {
var propValue = window._sharedData && window._sharedData[propName];
return propValue ? propValue : defaultValueIfNotTruthy;
};
var windowUrl = window.location.href;
var errUrl = err.url || windowUrl;
return {
line: err.line || errorInfo.message || 0,
column: err.column || 0,
name: 'InitError',
message: err.message || errorInfo.message || '',
script: errorInfo.script || '',
stack: errorInfo.stackTrace || errorInfo.stack || '',
timestamp: Date.now(),
ref: windowUrl.indexOf('direct') >= 0 ? 'direct' : windowUrl,
deployment_stage: getConfigProp('deployment_stage', ''),
frontend_env: getConfigProp('frontend_env', 'prod'),
rollout_hash: getConfigProp('rollout_hash', ''),
is_prerelease: window.PRERELEASE || false,
bundle_variant: getConfigProp('bundle_variant', null),
request_url: errUrl.indexOf('direct') >= 0 ? 'direct' : errUrl,
response_status_code: errorInfo.statusCode || 0
}
}
window.addEventListener('load', function(){
if (window.__bufferedErrors && window.__bufferedErrors.length) {
if (window.caches && window.caches.keys && window.caches.delete) {
window.caches.keys().then(function(keys) {
keys.forEach(function(key) {
window.caches.delete(key)
})
})
}
window.__bufferedErrors.map(function(error) {
return normalizeError(error)
}).forEach(function(normalizedError) {
var request = new XMLHttpRequest();
request.open('POST', '/client_error/', true);
request.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
request.send(JSON.stringify(normalizedError));
})
}
})
}());
</script>

] as JSON.

Oops, this is an error that hasn't yet been properly handled.
Please open an issue on Github at https://github.com/Danie1/threads-api.
Traceback (most recent call last):
File "/Users/kouroshshafi/Desktop/threads-api-1.1.13/threads_api/src/threads_api.py", line 168, in _extract_response_json
resp = json.loads(response)
File "/opt/anaconda3/lib/python3.9/json/init.py", line 346, in loads
return _default_decoder.decode(s)
File "/opt/anaconda3/lib/python3.9/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/opt/anaconda3/lib/python3.9/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "", line 1, in
File "/opt/anaconda3/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/opt/anaconda3/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "", line 2, in main
File "", line 4, in post
File "/Users/kouroshshafi/Desktop/threads-api-1.1.13/threads_api/src/threads_api.py", line 107, in wrapper
return await func(self, *args, **kwargs)
File "/Users/kouroshshafi/Desktop/threads-api-1.1.13/threads_api/src/threads_api.py", line 1131, in post
res = await self._private_post(url=post_url, headers=headers,data=payload)
File "/Users/kouroshshafi/Desktop/threads-api-1.1.13/threads_api/src/threads_api.py", line 107, in wrapper
return await func(self, *args, **kwargs)
File "/Users/kouroshshafi/Desktop/threads-api-1.1.13/threads_api/src/threads_api.py", line 181, in _private_post
resp_json = self._extract_response_json(response)
File "/Users/kouroshshafi/Desktop/threads-api-1.1.13/threads_api/src/threads_api.py", line 173, in _extract_response_json
raise Exception(f'Failed to decode response [{response}] as JSON.\n\n{OPEN_ISSUE_MESSAGE}')
Exception: Failed to decode response [

    <title>
              Page Not Found &bull; Instagram
            </title>

    
    <meta name="robots" content="noimageindex, noarchive">
    <meta name="apple-mobile-web-app-status-bar-style" content="default">
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="theme-color" content="#ffffff">
    
        <meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)">
    
    <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, viewport-fit=cover">
    <link rel="manifest" href="/data/manifest.json">

    
    
    

    <script type="text/javascript">
    (function() {

var docElement = document.documentElement;
var classRE = new RegExp('(^|\s)no-js(\s|$)');
var className = docElement.className;
docElement.className = className.replace(classRE, '$1js$2');
})();
</script>
<script type="text/javascript">
(function() {
if ('PerformanceObserver' in window && 'PerformancePaintTiming' in window) {
window.__bufferedPerformance = [];
var ob = new PerformanceObserver(function(e) {
window.__bufferedPerformance.push.apply(window.__bufferedPerformance,e.getEntries());
});
ob.observe({entryTypes:['paint']});
}

window.__bufferedErrors = [];
window.onerror = function(message, url, line, column, error) {
window.__bufferedErrors.push({
message: message,
url: url,
line: line,
column: column,
error: error
});
return false;
};
window.__initialData = {
pending: true,
waiting: []
};
function asyncFetchSharedData(extra) {
var sharedDataReq = new XMLHttpRequest();
sharedDataReq.onreadystatechange = function() {
if (sharedDataReq.readyState === 4) {
if(sharedDataReq.status === 200){
var sharedData = JSON.parse(sharedDataReq.responseText);
window.__initialDataLoaded(sharedData, extra);
}
}
}
sharedDataReq.open('GET', '/data/shared_data/', true);
sharedDataReq.send(null);
}
function notifyLoaded(item, data) {
item.pending = false;
item.data = data;
for (var i = 0;i < item.waiting.length; ++i) {
item.waiting[i].resolve(item.data);
}
item.waiting = [];
}
function notifyError(item, msg) {
item.pending = false;
item.error = new Error(msg);
for (var i = 0;i < item.waiting.length; ++i) {
item.waiting[i].reject(item.error);
}
item.waiting = [];
}
window.__initialDataLoaded = function(initialData, extraData) {
if (extraData) {
for (var key in extraData) {
initialData[key] = extraData[key];
}
}
notifyLoaded(window.__initialData, initialData);
};
window.__initialDataError = function(msg) {
notifyError(window.__initialData, msg);
};
window.__additionalData = {};
window.__pendingAdditionalData = function(paths) {
for (var i = 0;i < paths.length; ++i) {
window.__additionalData[paths[i]] = {
pending: true,
waiting: []
};
}
};
window.__additionalDataLoaded = function(path, data) {
if (path in window.__additionalData) {
notifyLoaded(window.__additionalData[path], data);
} else {
console.error('Unexpected additional data loaded "' + path + '"');
}
};
window.__additionalDataError = function(path, msg) {
if (path in window.__additionalData) {
notifyError(window.__additionalData[path], msg);
} else {
console.error('Unexpected additional data encountered an error "' + path + '": ' + msg);
}
};

})();
</script><script type="text/javascript">

/*
Copyright 2018 Google Inc. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

(function(){function g(a,c){b||(b=a,f=c,h.forEach(function(a){removeEventListener(a,l,e)}),m())}function m(){b&&f&&0<d.length&&(d.forEach(function(a){a(b,f)}),d=[])}function n(a,c){function k(){g(a,c);d()}function b(){d()}function d(){removeEventListener("pointerup",k,e);removeEventListener("pointercancel",b,e)}addEventListener("pointerup",k,e);addEventListener("pointercancel",b,e)}function l(a){if(a.cancelable){var c=performance.now(),b=a.timeStamp;b>c&&(c=+new Date);c-=b;"pointerdown"==a.type?n(c,
a):g(c,a)}}var e={passive:!0,capture:!0},h=["click","mousedown","keydown","touchstart","pointerdown"],b,f,d=[];h.forEach(function(a){addEventListener(a,l,e)});window.perfMetrics=window.perfMetrics||{};window.perfMetrics.onFirstInputDelay=function(a){d.push(a);m()}})();
</script>

                <!-- Icons for add to home screen flow  -->
                <link rel="apple-touch-icon-precomposed" sizes="76x76" href="/static/images/ico/apple-touch-icon-76x76-precomposed-refresh.png/c2433a4e3bc6.png">
                <link rel="apple-touch-icon-precomposed" sizes="120x120" href="/static/images/ico/apple-touch-icon-120x120-precomposed-refresh.png/073826ab4e03.png">
                <link rel="apple-touch-icon-precomposed" sizes="152x152" href="/static/images/ico/apple-touch-icon-152x152-precomposed-refresh.png/a2c0c3c558c0.png">
                <link rel="apple-touch-icon-precomposed" sizes="167x167" href="/static/images/ico/apple-touch-icon-167x167-precomposed-refresh.png/7c0942b9f53c.png">
                <link rel="apple-touch-icon-precomposed" sizes="180x180" href="/static/images/ico/apple-touch-icon-180x180-precomposed-refresh.png/216ba3a34992.png">
                <link rel="apple-touch-icon" sizes="76x76" href="/static/images/ico/apple-touch-icon-76x76-a2h-refresh.png/0c8b5dfc327e.png">
                <link rel="apple-touch-icon" sizes="120x120" href="/static/images/ico/apple-touch-icon-120x120-a2h-refresh.png/d17a02b9cbbc.png">
                <link rel="apple-touch-icon" sizes="152x152" href="/static/images/ico/apple-touch-icon-152x152-a2h-refresh.png/05d118183ea9.png">
                <link rel="apple-touch-icon" sizes="167x167" href="/static/images/ico/apple-touch-icon-167x167-a2h-refresh.png/8be4c958c827.png">
                <link rel="apple-touch-icon" sizes="180x180" href="/static/images/ico/apple-touch-icon-180x180-a2h-refresh.png/e7add10b677a.png">
            
            
                
                    <link rel="icon" sizes="192x192" href="/static/images/ico/favicon-refresh-192.png/7dc5a797e88b.png">
                
            
        
        
                
                    <link rel="shortcut icon" type="image/x-icon" href="/static/images/ico/favicon-refresh.ico/eb03b7b3286b.ico">
                
            
        
        

    <style type="text/css">/* @generated 
  • DO NOT CHANGE THIS FILE. Instead, modify the non-build version of "main.css"

  • then run "yolo css"
    */
    body{-webkit-font-smoothing:antialiased;background-color:#fafafa;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;margin:0}.client-root{font-size:14px}a{text-decoration:none}.-cx-PRIVATE-Page__body__,.-cx-PRIVATE-Page__main__,.-cx-PRIVATE-Page__root__{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.-cx-PRIVATE-Page__root__{height:100vh}.-cx-PRIVATE-Page__body__,.-cx-PRIVATE-Page__main__{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.-cx-PRIVATE-Page__main__{margin-top:137px;position:relative}@media screen and (max-width:990px){.-cx-PRIVATE-Page__main__{display:block;margin-top:0}}.-cx-PRIVATE-NavBar__root__{background-color:#fff;border-bottom:1px solid #efefef;height:77px;position:fixed;top:0;width:100%;z-index:100}.-cx-PRIVATE-NavBar__profilePic__{display:none}.-cx-PRIVATE-NavBar__username__{color:#003569;display:inline!important;float:right;font-weight:400;margin-right:2px;margin-top:12px}.-cx-PRIVATE-NavBar__signIn__{display:inline-block;float:right;margin-right:2px;margin-top:12px}.-cx-PRIVATE-NavBar__signInText__{color:#003569;font-weight:400}.-cx-PRIVATE-NavBar__logo__{background-image:url(/static/images/branding/logoWhiteoutLockup.png/3a62b1a95da3.png);background-size:100%;height:35px;left:16px;position:absolute;text-indent:-9999em;top:6px;width:176px}.-cx-PRIVATE-NavBar__logo__ a{display:block;height:100%;width:100%}@media screen and (-webkit-min-device-pixel-ratio:1.5),screen and (min-resolution:1.5dppx){.-cx-PRIVATE-NavBar__logo__{background-image:url(/static/images/branding/logoWhiteoutLockup@2x.png/43608c988939.png)}}.-cx-PRIVATE-NavBar__logoGroup__{left:16px;position:absolute;top:6px}.-cx-PRIVATE-NavBar__logoGroup__ .-cx-PRIVATE-NavBar__logo__{position:static}.-cx-PRIVATE-NavBar__wrapper__{margin:0 auto;max-width:1026px;padding:0 16px;position:relative}.-cx-PRIVATE-NavBar__topBarActions__,.-cx-PRIVATE-SidebarLayout__content__ li{list-style:none}.-cx-PRIVATE-NavBar__dropdown__,.-cx-PRIVATE-NavBar__topBarLeft__,.-cx-PRIVATE-SidebarLayout__content__ .separator,.-cx-PRIVATE-SidebarLayout__content__ .subtitle{display:none}.-cx-PRIVATE-SidebarLayout__content__{border-right:1px solid #efefef;height:100%;width:220px}.-cx-PRIVATE-SidebarLayout__content__ ul{margin:0;padding:0}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__content__{margin:0 px;border:0;width:100%}.-cx-PRIVATE-SidebarLayout__content__ ul{display:none}}.-cx-PRIVATE-SidebarLayout__root__{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;pointer-events:none;position:absolute;width:100%;z-index:1}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__root__{height:auto;padding-bottom:0;padding-top:78px;position:static}}.-cx-PRIVATE-SidebarLayout__contentWrapper__,.-cx-PRIVATE-SidebarLayout__navWrapper__{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin:0 auto;position:relative;width:992px}@media screen and (min-width:991px){.-cx-PRIVATE-SidebarLayout__navWrapper__{height:100%}}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__navWrapper__{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;height:auto;min-height:0;padding:0;width:100%}}.-cx-PRIVATE-SidebarLayout__nav__{float:left;height:100%;padding-right:0;pointer-events:initial;width:256px}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__nav__{float:none;display:block;margin:0!important;background:0 0;border:0;width:100%}}.-cx-PRIVATE-SidebarLayout__contentWrapper__{background-color:#fff;border:1px solid #efefef;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 16px 20px}@media screen and (min-width:991px){.-cx-PRIVATE-SidebarLayout__contentWrapper__{border:1px solid #efefef;border-radius:3px}}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__contentWrapper__{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.-cx-PRIVATE-SidebarLayout__pageContent__ .-cx-PRIVATE-SidebarLayout__contentWrapper__{padding:0 10px}}.-cx-PRIVATE-SidebarLayout__pageContent__{color:#262626;margin-left:205px;padding:30px 50px}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__pageContent__{margin-left:0;margin-right:0;padding:20px 0}}.-cx-PRIVATE-SidebarLayout__pageContent__>:first-child{margin-top:0}.-cx-PRIVATE-SidebarLayout__pageContent__ a{color:#003569}.-cx-PRIVATE-SidebarLayout__pageContent__ h1{font-size:32px;font-weight:400;margin-bottom:20px;margin-top:28px}.-cx-PRIVATE-SidebarLayout__pageContent__ h2{font-size:24px;font-weight:400;margin-bottom:12px;margin-top:28px}.-cx-PRIVATE-SidebarLayout__pageContent__ h3{font-weight:600;margin-bottom:12px;margin-top:28px}.-cx-PRIVATE-SidebarLayout__pageContent__ li{padding-left:8px}.-cx-PRIVATE-SidebarLayout__pageContent__ li:not(:first-child){margin-top:8px}.-cx-PRIVATE-SidebarLayout__pageContent__ pre{white-space:pre-wrap}.-cx-PRIVATE-Navigation__header__{color:#999;font-size:16px;font-weight:initial;margin:0;padding:16px;text-transform:uppercase}@media screen and (max-width:990px){.-cx-PRIVATE-Navigation__header__:first-child{display:block}.-cx-PRIVATE-Navigation__header__:not(:first-child){display:none}.-cx-PRIVATE-Navigation__header__ i{float:left;width:22px;height:18px;margin-right:8px;margin-left:10px;background:url(/static/images/glyphs/disclosure-down@2x.png/9ae8409fbb3a.png) no-repeat center;background-size:14px 14px}.-cx-PRIVATE-SidebarLayout__content__.active .-cx-PRIVATE-Navigation__header__ i{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}.-cx-PRIVATE-Navigation__navLink__,.-cx-PRIVATE-Navigation__navLink__:active,.-cx-PRIVATE-Navigation__navLink__:hover,.-cx-PRIVATE-Navigation__navLink__:visited{border-left:2px solid transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:#262626;font-size:16px;display:block;padding:16px 16px 16px 30px;width:100%}.-cx-PRIVATE-Navigation__navLink__:hover{border-left-color:#dbdbdb}.-cx-PRIVATE-Navigation__active__ .-cx-PRIVATE-Navigation__navLink__{border-left-color:#262626;font-weight:600}.-cx-PRIVATE-Footer__root__{font-size:12px;height:77px}.-cx-PRIVATE-Footer__copyright__{color:#262626;display:inline-block;float:right;font-weight:600;margin-top:20px;text-transform:uppercase}.-cx-PRIVATE-Footer__nav__{display:inline-block}@media screen and (max-width:990px){.-cx-PRIVATE-Footer__copyright__{text-align:center;width:100%}}.-cx-PRIVATE-Footer__navItems__{margin:20px 0;padding:0;text-align:center}.-cx-PRIVATE-Footer__navItems__ li{display:inline-block;list-style:none}.-cx-PRIVATE-Footer__navItems__ li:not(:first-child){margin-left:15px}.-cx-PRIVATE-Footer__navItems__ a,.-cx-PRIVATE-Footer__navItems__ a:active,.-cx-PRIVATE-Footer__navItems__ a:focus,.-cx-PRIVATE-Footer__navItems__ a:hover,.-cx-PRIVATE-Footer__navItems__ a:visited{color:#003569;font-weight:600;text-transform:uppercase}.-cx-PRIVATE-Footer__wrapper__{margin-left:auto;margin-right:auto;max-width:1026px;padding:0 20px}.-cx-PRIVATE-ErrorPage__errorContainer__{text-align:center}@media (max-width:990px){.-cx-PRIVATE-ErrorPage__errorContainer__{padding:100px 40px 0}}.-cx-PRIVATE-ErrorPage__errorContainer__ a,.-cx-PRIVATE-ErrorPage__errorContainer__ a:visited{color:#003569}.-cx-PRIVATE-Linkshim__followLink__{background-color:#fff;color:#3897f0;border:1px solid #3897f0;border-radius:3px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;padding:8px;font:inherit;font-weight:700;width:90%}@media (min-width:736px){.-cx-PRIVATE-Linkshim__followLink__{width:10%}}.-cx-PRIVATE-Linkshim__followLink__:active{opacity:.5}.-cx-PRIVATE-Linkshim__followLink__:focus{color:#1372cc;border:1px solid #1372cc}.-cx-PRIVATE-GatedContentPage__userAvatarContainer__{height:70px;text-align:center}.-cx-PRIVATE-GatedContentPage__userAvatar__{border-radius:50%;height:100%;width:auto}</style>

    <script type="text/javascript" src="/static/scripts/jquery.js/a4e77326039e.js" crossorigin="anonymous"></script> <script type="text/javascript" src="/static/scripts/bluebar.js/203583927eba.js" crossorigin="anonymous"></script>
        <div class="root -cx-PRIVATE-Page__root -cx-PRIVATE-Page__root__">
            
                <div class="page -cx-PRIVATE-Page__body -cx-PRIVATE-Page__body__">
                    
                        
                            <header class="top-bar top-bar-new -cx-PRIVATE-NavBar__root -cx-PRIVATE-NavBar__root__">
<div class="top-bar-wrapper -cx-PRIVATE-NavBar__wrapper -cx-PRIVATE-NavBar__wrapper__">
    <div class="logo -cx-PRIVATE-NavBar__logo -cx-PRIVATE-NavBar__logo__"><a href="/">Instagram</a></div>

    <div class="top-bar-left -cx-PRIVATE-NavBar__topBarLeft -cx-PRIVATE-NavBar__topBarLeft__">
        <ul class="top-bar-actions">
            <li>
                <a class="top-bar-home" href="/" label=Home><i></i></a>
            </li>
        </ul>
    </div>

    
        <div class="top-bar-right account-state" id="top_bar_right">
            <ul class="top-bar-actions -cx-PRIVATE-NavBar__topBarActions -cx-PRIVATE-NavBar__topBarActions__">
                
                
                <li id="link_profile" class="link-profile has-dropdown -cx-PRIVATE-NavBar__profile -cx-PRIVATE-NavBar__profile__">
                    <a href="/kouroshshaf/">
                        <strong class="-cx-PRIVATE-NavBar__username -cx-PRIVATE-NavBar__username__">kouroshshaf</strong>
                    </a>

                </li>
                
            </ul>
        </div>
    
</div>
                    <div class="main -cx-PRIVATE-Page__main -cx-PRIVATE-Page__main__">
                        
<div class="error-container -cx-PRIVATE-ErrorPage__errorContainer -cx-PRIVATE-ErrorPage__errorContainer__">


<h2>Sorry, this page isn&#39;t available.</h2>

<p>
    The link you followed may be broken, or the page may have been removed.
    <a href="/">Go back to Instagram.</a>
</p>



</div>

                    </div> <!-- .main -->
                    

                </div> <!-- .page -->

                
                <footer class="page-footer -cx-PRIVATE-Footer__root -cx-PRIVATE-Footer__root__" role="contentinfo">
                    <div class="wrapper -cx-PRIVATE-Footer__wrapper -cx-PRIVATE-Footer__wrapper__">
                        <nav class="-cx-PRIVATE-Footer__nav -cx-PRIVATE-Footer__nav__">
                            <ul class="-cx-PRIVATE-Footer__navItems -cx-PRIVATE-Footer__navItems__">
                                <li><a href="/about/us/">About us</a></li>
                                <li><a href="https://help.instagram.com/">Support</a></li>
                                <li><a href="https://about.instagram.com/blog/">Press</a></li>
                                <li><a href="">API</a></li>
                                <li><a href="https://about.instagram.com/about-us/careers">Jobs</a></li>
                                <li><a href="/legal/privacy/">Privacy</a></li>
                                <li><a href="/legal/terms/">
                                  
                                      Terms
                                  
                                </a></li>
                                
                            </ul>
                        </nav>

                        <p class="copyright -cx-PRIVATE-Footer__copyright -cx-PRIVATE-Footer__copyright__">&copy; 2023 Instagram</p>
                    </div>
                </footer>
                
            
            <div id="reactModalMountPoint"></div>
        </div> <!-- .root -->
    
    


    
        

        
    

    <script type="text/javascript">

(function(){
function normalizeError(err) {
var errorInfo = err.error || {};
var getConfigProp = function(propName, defaultValueIfNotTruthy) {
var propValue = window._sharedData && window._sharedData[propName];
return propValue ? propValue : defaultValueIfNotTruthy;
};
var windowUrl = window.location.href;
var errUrl = err.url || windowUrl;
return {
line: err.line || errorInfo.message || 0,
column: err.column || 0,
name: 'InitError',
message: err.message || errorInfo.message || '',
script: errorInfo.script || '',
stack: errorInfo.stackTrace || errorInfo.stack || '',
timestamp: Date.now(),
ref: windowUrl.indexOf('direct') >= 0 ? 'direct' : windowUrl,
deployment_stage: getConfigProp('deployment_stage', ''),
frontend_env: getConfigProp('frontend_env', 'prod'),
rollout_hash: getConfigProp('rollout_hash', ''),
is_prerelease: window.PRERELEASE || false,
bundle_variant: getConfigProp('bundle_variant', null),
request_url: errUrl.indexOf('direct') >= 0 ? 'direct' : errUrl,
response_status_code: errorInfo.statusCode || 0
}
}
window.addEventListener('load', function(){
if (window.__bufferedErrors && window.__bufferedErrors.length) {
if (window.caches && window.caches.keys && window.caches.delete) {
window.caches.keys().then(function(keys) {
keys.forEach(function(key) {
window.caches.delete(key)
})
})
}
window.__bufferedErrors.map(function(error) {
return normalizeError(error)
}).forEach(function(normalizedError) {
var request = new XMLHttpRequest();
request.open('POST', '/client_error/', true);
request.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
request.send(JSON.stringify(normalizedError));
})
}
})
}());
</script>

] as JSON.

Oops, this is an error that hasn't yet been properly handled.
Please open an issue on Github at https://github.com/Danie1/threads-api.

@Danie1
Copy link
Owner

Danie1 commented Jul 23, 2023

Hey @kouroshshafi, please include the REQUEST and RESPONSE headers, like so once you run with the LOG_LEVEL=DEBUG" environment variable:

<---- START ---->
Keyword arguments:
  [title]: ["PUBLIC REQUEST"]
  [type]: ["GET"]
  [url]: ["https://www.instagram.com/instagram"]
  [headers]: [{
    "Authority": "www.threads.net",
    "Accept": "*/*",
    "Accept-Language": "en-US,en;q=0.9",
    "Cache-Control": "no-cache",
    "Content-Type": "application/x-www-form-urlencoded",
    "Origin": "https://www.threads.net",
    "Pragma": "no-cache",
    "Sec-Fetch-Dest": "document",
    "Sec-Fetch-Mode": "navigate",
    "Sec-Fetch-Site": "cross-site",
    "Sec-Fetch-User": "?1",
    "Upgrade-Insecure-Requests": "1",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.2 Safari/605.1.15",
    "X-ASBD-ID": "129477",
    "X-IG-App-ID": "238260118697367"
}]
<---- END ---->

@Danie1 Danie1 reopened this Jul 23, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants