Troubleshooting & error reference

Every status code and message produced by the Account Connect endpoints, the connector endpoints and the dashboard — what causes it, what the customer sees, and how to fix it. The example outputs on this page were captured from our live demo.
10 min readhttps://www.siluxchat.comcurl · Python · PHP · Node.js

Start here

  1. 1
    Open Dashboard → Integrations. Each connection shows its status, a tick or cross per capability, and the last error in full.
  2. 2
    Press Test (connectors) or Connect & test (Account Connect) to re-run the check with the test customer — nobody is contacted.
  3. 3
    Find the exact message in the tables below.
  4. 4
    Check your Activity Log: every connect, test and disconnect is recorded.
  5. 5
    Still stuck? Email support@siluxcall.co.uk with the connection name and the message (never the key).

HTTP status codes

StatusMeaningTypical causeFix
200 + success:trueIt worked——
200 + success:falseA normal “no”Details don’t match, wrong or expired code, system temporarily unavailableRead message; see the next table
400Bad input (dashboard)A required setting or key is missing or malformedCorrect the field named in the message
401Not authorisedMissing/wrong X-API-Key, or an unknown/expired session_tokenCheck the key and header name; verify the customer again
404Not foundUnknown connector, connection or pathCheck the base address and connection
409Not available yetOAuth sign-in for a vendor whose Silux Chat app is not registeredUse an API key where the vendor offers one, or contact us
422Invalid JSON bodyBody not JSON, or a field of the wrong typeSend Content-Type: application/json with the documented fields
429Rate limitedToo many requests in a short timeSlow down; honour Retry-After
5xxServer errorA fault on the server that returned itRetry later; tell us if it persists

Verification messages

These are the exact message strings returned by the platform’s connector endpoints (/api/connect/{id}/…). Your own Account Connect implementation should use the same wording; the reference implementations do.

MessageHTTPMeaningWhat to do
We could not match those details to an account.200No customer with that name plus a matching postcode, email or mobileCheck the record in your system; see Empty results below
That code is not correct.200Wrong code; attempts remainThe customer retypes the code
Too many wrong codes — please ask for a new one.200Fifth wrong code; the code is voidedStart verification again for a new code
That code has expired — please ask for a new one.200Unknown, used or older than 10 minutesStart verification again
We can't check accounts right now — our team has been told. with system_error: true200The vendor refused or failed the lookup; the connection is marked failingReconnect or fix the credentials; see Vendor errors
We found the account but have no mobile or email on it to send a code to — please contact us directly.200The record has no usable contact details, or both text and email failedAdd a mobile or email to the customer record
Session expired — please verify again.401Session unknown or older than 30 minutesThe bot re-verifies the customer
Missing or wrong X-API-Key401Account Connect / connector endpoint called without the right keyCheck the key and the header name
<Name> can't be used to check who you are — it holds no customer records with a name and email to match. Please contact us directly. with not_supported: true200verify-identity on a connector with neither a customer search nor records that name the customer (e.g. a carrier, Trello)Verify customers with another connector or Account Connect
To check your details I need your full name and the email address you used with us. with needs200A connector that verifies from the customer’s own orders/bookings was sent no valid emailThe bot asks for the email
That doesn't look like a tracking number — …200order-status: the tracking number is shorter than 8 characters or has no digitsAsk for the number from the dispatch email or text
Looking an order up by its order number needs the customer to be verified first. … with needs_verification: true200order-status by order number without a verified session of that connectionVerify the customer, or use the tracking number
We can't check tracking right now — our team has been told. with system_error: true200The courier refused or failed the lookupReconnect or fix the credentials
{"detail":"Invalid API key"}401Platform API (e.g. /api/chatbot-api/*, /api/sandbox/*) called with a wrong tenant keyCopy the key again from Dashboard → API Settings

“Can't check” is never “not found”

If a lookup fails for a technical reason, the customer is told the system is unavailable — never that they have no account or no orders. If you see this message, the fault is in the connection, not the customer.

Error body shapes

Normal “no” answers are flat JSON. A 401 raised by the platform is wrapped in FastAPI’s detail envelope. Code that reads the reply should accept both:

200 — flat
{"success": false, "message": "That code is not correct."}
401 — wrapped (platform endpoints)
{"detail": {"success": false, "message": "Session expired — please verify again."}}

When you build your own endpoints, either shape is fine for a 401 — the platform acts on the status code.

Dashboard connect errors

MessageCauseFix
Enter the <label>A required setting or secret was left blankFill in the named field
That <label> doesn't look right — e.g. <example>The value does not match the expected format (for example a Shopify domain must end .myshopify.com)Copy the value from the vendor admin in the format shown; https:// and trailing slashes are removed for you
<Name> connects by signing in — use the Connect with <Name> buttonAn OAuth-only vendor was given keysPress Sign in with <Name>
Silux Chat's <Name> app is not registered yet — …409 — our app with that vendor is not yet approvedUse an API key where the vendor offers one, or email us and we will tell you when it is ready
This connector holds no customer records with a name and email to check, so it can't verify customersUse to verify customers pressed on a connector with no customer search and no records naming the customer (e.g. a carrier, Trello)Verify customers with another connector or Account Connect; a carrier can still answer by tracking number — press Use for tracking
This connector has no tracking look-upUse for tracking pressed on a connector without order trackingUse a courier or shipping connector
That address can't be used: …Account Connect base address is private, internal or malformedUse a public HTTPS address
Enter the API key your system expectsAccount Connect key left blankEnter the key

Vendor errors

Error shownMeaningFix
the vendor refused the credentials (401)The key or token is wrong, revoked or expiredCreate a new key in the vendor admin and reconnect
the vendor refused the credentials (403)The key works but lacks a read permission/scope, or the plan does not include API accessGrant the read scopes listed on the connector page, then reconnect
vendor error 404: …Wrong store/site/region/account setting — or simply no such customerCheck the settings; for a made-up customer a 404 counts as working
vendor error 4xx/5xx: …The vendor rejected or failed the request; the first 200 characters of its reply are shownRead the vendor’s message; retry later for 5xx
the vendor kept rate-limiting the requestHTTP 429 three times in a row. Each 429 is retried after the vendor’s Retry-After (up to 10 seconds)Reduce other traffic on the same key, or ask the vendor for a higher limit
TimeoutEach vendor call is allowed 15 secondsCheck the vendor’s status page
this connector is no longer availableThe connector was withdrawn from the catalogueContact us for an alternative

How connection tests work

  • When you connect, press Test, or the daily check runs, the platform makes a real, read-only call for every capability using a customer who does not exist: connection-test@example.com, mobile 07700900999.
  • Working credentials give an empty answer (or a 404 “not found”), which counts as a pass. Wrong or revoked credentials give a refusal, which counts as a fail.
  • The connection shows working if at least one capability passes; the per-capability ticks show exactly which ones work. It shows failing only when none do.
  • When the bot’s chained test sends the test customer (Test Customer / TE5 7ST) through a connector, it runs this probe instead of looking anyone up, issues code 123456, and the account endpoints reply with "test": true and no customer data.

Account Connect test failures

What the dashboard showsFix
Verify Identity ✗ “no otp_token returned”Step 1 must reply {"success": true, "otp_token": "..."} for the test customer Test Customer / TE5 7ST.
Verify OTP ✗ “no session_token returned”The test customer’s code must be 123456, and step 2 must reply {"success": true, "session_token": "..."}.
Verify OTP — “skipped — step 1 failed”Fix step 1 first.
Account Summary ✗ “failed: 401”The session_token from step 2 is not recognised — check your session store (a common cause is several workers with in-memory storage).
My Orders / My Invoices ✗The endpoint must return HTTP 200 with JSON and must not say "success": false.
Every step ✗ with 401The API key or header name on the dashboard does not match your system.
“That address can't be used”The address must be public HTTPS, not an internal or private IP.

Failed steps stay switched off, so the bot never uses a half-working chain. The full specification is in Build your own Account Connect endpoints.

Empty results

“We could not match those details” or an empty list for a customer you know exists usually has one of these causes:

CauseCheck
Wrong store, site, region or accountThe settings on the connection point at a test or different store
Looked up by email or mobile — not postcodeConnectors find the customer by email, then mobile. A customer who gives only name + postcode cannot be found; the bot asks for an email or mobile. Connectors with no customer search (Cal.com, Etsy, eBay, AfterShip…) match on the customer’s own orders or bookings by email only
Email not on the recordThe customer used a different email with you than the one they typed
Name mismatchThe surname must match exactly and the first name must match or begin with the same letter (“Jan Smith” matches “Jane Smith”; “Jane Smyth” does not). Single letters are ignored, so an initial on its own (“J Smith”) is not enough — ask for the first name
Phone formatNumbers compare on the last ten digits, so 07700 900123 and +44 7700 900123 match — but a landline on the record will not match a mobile
Missing permissionThe key can read customers but not orders or invoices — the capability shows a cross
Record belongs to someone elseRows carrying another customer’s email are deliberately dropped
try it: vendor-style lookups on the demo
KEY=demo-account-connect-key
V=https://www.siluxchat.com/api/account-connect-demo/v1/vendor

# A customer who isn't there: an empty list, not an error (this is what a passing connection test looks like)
curl -s "$V/customers?email=nobody@example.com" -H "X-API-Key: $KEY"

# The same customer by mobile in international format: phone numbers match on the last ten digits
curl -s "$V/customers?phone=%2B447700900001" -H "X-API-Key: $KEY"
real output
{"customers":[]}
{"customers":[{"id":"C1002","first_name":"Jane","last_name":"Demo","email":"jane.demo@example.com","phone":"07700900001","address":{"postcode":"SW1A 1AA"}}]}

Codes not arriving

  • Where it goes: by text to the mobile on the record where your plan includes SMS; otherwise, or if the text cannot be sent, by email to the address on the record. The reply says which (“Code sent by a text to the mobile ending 123”, or a masked email).
  • No contact details on the record produce the “no mobile or email” message — add one in your system.
  • Old number on file: the code goes to the number your system holds, never one the customer types. Update the record.
  • Demo and test customers are never contacted; their code is always 123456.
  • Your own endpoints: check your SMS provider’s delivery log and sender-ID rules.

OAuth sign-in results

After signing in with a vendor you are returned to /dashboard?tab=integrations&connector=…:

connector=MeaningNext step
okSigned in and testedNothing — it is live
failingSigned in, but the test call was refusedCheck the account has access to the data, then Test again
cancelledSign-in was declined or cancelled at the vendorStart again and approve access
failedThe vendor refused to issue a tokenTry again; if it repeats, contact us
expiredThe sign-in link was stale or already usedStart the sign-in again from the dashboard

Daily health check

Every active connection is re-tested once a day. If a connection that was working starts failing — typically a revoked key or an expired sign-in — the account owner receives one email: “Your <Name> connection has stopped working”, with the reason. Until it is reconnected the bot tells customers it can’t check their account right now, rather than implying they have nothing on record.

Diagnostics with curl

Run these against the demo to see correct behaviour, then set BASE and KEY to your own Account Connect address and key and compare.

diagnostics
BASE=${BASE:-https://www.siluxchat.com/api/account-connect-demo/v1}
KEY=${KEY:-demo-account-connect-key}

# 1. Is the platform reachable?  (expect 200)
curl -s -o /dev/null -w "%{http_code}\n" https://www.siluxchat.com/api/connectors/catalogue

# 2. Missing key  (expect 401)
curl -s -w " %{http_code}\n" -X POST $BASE/verify-identity \
  -H "Content-Type: application/json" -d '{"full_name":"Test Customer","postcode":"TE5 7ST"}'

# 3. The test customer  (expect success:true and an otp_token)
curl -s -w " %{http_code}\n" -X POST $BASE/verify-identity -H "X-API-Key: $KEY" \
  -H "Content-Type: application/json" -d '{"full_name":"Test Customer","postcode":"TE5 7ST"}'

# 4. Wrong details  (expect 200 with success:false)
curl -s -w " %{http_code}\n" -X POST $BASE/verify-identity -H "X-API-Key: $KEY" \
  -H "Content-Type: application/json" -d '{"full_name":"Test Customer","postcode":"AB1 2CD"}'

# 5. Unknown or expired code token  (expect 200 with success:false)
curl -s -w " %{http_code}\n" -X POST $BASE/verify-otp -H "X-API-Key: $KEY" \
  -H "Content-Type: application/json" -d '{"otp_token":"expired-or-made-up","otp_code":"123456"}'

# 6. Unknown or expired session  (expect 401)
curl -s -w " %{http_code}\n" -X POST $BASE/orders -H "X-API-Key: $KEY" \
  -H "Content-Type: application/json" -d '{"session_token":"expired-or-made-up"}'
real output from https://www.siluxchat.com/api/account-connect-demo/v1
200
{"detail":{"success":false,"message":"Missing or wrong X-API-Key"}} 401
{"success":true,"otp_token":"eyJrIjoib3RwIiwiYyI6IkMxMDAxIiwi…","message":"Code sent to mobile ending 000"} 200
{"success":false,"message":"We could not match those details to an account."} 200
{"success":false,"message":"That code has expired — please ask for a new one."} 200
{"detail":{"success":false,"message":"Session expired — please verify again."}} 401

The demo key

The demo uses demo-account-connect-key and fictional customers only. More in Testing with the live demo.

FAQ

Why does my connection say working when orders show a cross?

A connection is working if any capability passes. Orders failing usually means the key lacks the orders read permission — grant it and press Test.

Will a failed test text or email anyone?

No. Tests use a made-up customer or the test customer, and neither is ever contacted.

The bot asked the customer to verify again mid-conversation.

Sessions last 30 minutes. After that, account endpoints return 401 and the bot starts a fresh verification.

We rotated our vendor key and the bot stopped answering.

Enter the new key: disconnect and reconnect the connector (the old key is destroyed), or re-run Connect & test for Account Connect.

Can I see what the vendor actually returned?

The dashboard shows the last error in full. For your own endpoints, your server logs are the source of truth — log status codes and outcomes, never codes or tokens.

Get help

Send us the message, not the key

Email support@siluxcall.co.uk with the connector or base address, the exact message and roughly when it happened. We can see test results for your account and will take it from there.

Need help with your integration?

Our integration team can review your endpoints, help you choose the right connector and check a test run with you. Tell us which system you use and what you would like the bot to answer.

support@siluxcall.co.uk