You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GET https://api.switch-bot.com/v1.1/devices succeeds with statusCode: 100, but both deviceList and infraredRemoteList come back empty, even though the account owns a Hub Mini, a Lock and a Keypad that are all visible and remotely controllable in the SwitchBot app.
This is the exact symptom reported in #233. In that thread, @hsakoh inspected the Android app traffic and found that /prod/account/api/v1/user/userinfo returned botRegion=us for accounts that worked, and botRegion=ap for accounts that returned an empty deviceList. Our account was created in Japan, so it is almost certainly botRegion=ap.
#233 was never answered by the SwitchBot team; the reporters simply observed it fixing itself a few weeks later and the stale bot closed the issue. #326 also appears to be the same class of problem (cross-region routing), and is still open: Functions from 'us-east-1' are not reachable in this region ('eu-central-1').
Because the app can lock/unlock the devices remotely, the device-to-cloud binding itself is clearly alive. Only the OpenAPI view of the account's device inventory is empty. That points at inventory sync or account/region mapping on the OpenAPI backend rather than anything on the client side.
Expected Behavior
GET /v1.1/devices should return the Hub Mini, the Lock and the Keypad that the account owns.
Steps To Reproduce
Create a SwitchBot account in Japan (region ap).
Add a Hub Mini, a Lock and a Keypad to that account. Confirm remote lock/unlock and status work from the app.
Generate a token and secret from the app's Developer Options.
Call GET https://api.switch-bot.com/v1.1/devices with the documented Authorization / sign / t / nonce headers.
The response is HTTP 200, statusCode: 100, message: "success", with both lists empty.
We can provide on request: exact timestamp in JST, the account email, app version, and raw response logs.
App feedback ticket no.: 1302365
Could you please check whether the account's botRegion (likely ap) is correctly mapped on the OpenAPI backend, and whether the device inventory sync for this account has failed? Since #233 was closed without a root-cause explanation, we would like to avoid simply waiting several weeks for it to resolve on its own — this is blocking a production integration that issues time-limited Keypad passcodes.
Analysis
GET https://api.switch-bot.com/v1.1/devicessucceeds withstatusCode: 100, but bothdeviceListandinfraredRemoteListcome back empty, even though the account owns a Hub Mini, a Lock and a Keypad that are all visible and remotely controllable in the SwitchBot app.This is the exact symptom reported in #233. In that thread, @hsakoh inspected the Android app traffic and found that
/prod/account/api/v1/user/userinforeturnedbotRegion=usfor accounts that worked, andbotRegion=apfor accounts that returned an emptydeviceList. Our account was created in Japan, so it is almost certainlybotRegion=ap.#233 was never answered by the SwitchBot team; the reporters simply observed it fixing itself a few weeks later and the stale bot closed the issue. #326 also appears to be the same class of problem (cross-region routing), and is still open:
Functions from 'us-east-1' are not reachable in this region ('eu-central-1').Because the app can lock/unlock the devices remotely, the device-to-cloud binding itself is clearly alive. Only the OpenAPI view of the account's device inventory is empty. That points at inventory sync or account/region mapping on the OpenAPI backend rather than anything on the client side.
Expected Behavior
GET /v1.1/devicesshould return the Hub Mini, the Lock and the Keypad that the account owns.Steps To Reproduce
ap).GET https://api.switch-bot.com/v1.1/deviceswith the documentedAuthorization/sign/t/nonceheaders.statusCode: 100,message: "success", with both lists empty.Logs
{ "statusCode": 100, "body": { "deviceList": [], "infraredRemoteList": [] }, "message": "success" }Configuration
{ "endpoint": "https://api.switch-bot.com/v1.1/devices", "auth": "HMAC-SHA256 over (token + t + nonce), base64, uppercased", "headers": ["Authorization", "sign", "t", "nonce", "Content-Type"] }Environment
fetch(standalone script) and a Next.js server route — both give the same empty resultAdditional Context
What we have already verified:
statusCodeis always100..envfile or are passed inline, and from two independent code paths.We can provide on request: exact timestamp in JST, the account email, app version, and raw response logs.
App feedback ticket no.: 1302365
Could you please check whether the account's
botRegion(likelyap) is correctly mapped on the OpenAPI backend, and whether the device inventory sync for this account has failed? Since #233 was closed without a root-cause explanation, we would like to avoid simply waiting several weeks for it to resolve on its own — this is blocking a production integration that issues time-limited Keypad passcodes.