Compared against the HAR: /agent-foreign/sys/userInfo does not exist and yeeke answered HTTP 500, so every sync after the first successful login failed at the session check. Use /agent-foreign/shopee/user/info, which the web client calls after login. Send the token in the X-Access-Token header like the web client (the list endpoint only accepts the header) instead of a ?token= URL parameter, which also keeps it out of URL logs. Post the list filters as the web client does (column/order, string flags). Also treat "登录...失效" as an expired session. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NTDbDcwbDw1TSAcE6wfh2F