Skip to content

Fix Xentral/WATI/Worksection/Snov/LINE/Uzum/Twelve Data after live checks - #1156

Merged
helpcodeai merged 2 commits into
mainfrom
helpcodeai/verify-group-a2
Oct 19, 2026
Merged

helpcodeai merged 2 commits into
mainfrom
helpcodeai/verify-group-a2

Conversation

@helpcodeai

Copy link
Copy Markdown
Contributor

I ran the catalog adapters against real accounts on Cloud, read-only (GET or read-only tools only, nothing sent or written), and went through the last two weeks of errors for the adapters that were failing for their users.

What I found

Xentral: all 28 read tools answer 200 on a live instance (lists, gets, filters, sorting, balances, storage locations). No change.

WATI: templates, contacts and chat history answer as expected, including the "Can't find Conversation" case mapped to 404. No change.

Worksection: the access token lasts 24 hours and the connector could never renew it. Worksection issues tokens at /oauth2/token but only refreshes at /oauth2/refresh; a refresh sent to /oauth2/token comes back without an access_token, so every connector needed a new authorization each day. OAuth2 authConfig now takes an optional refreshUrl, used only for the refresh_token grant, and the adapter sets it. Not run live: the only stored token had expired and refreshing it would have rotated someone else's refresh token.

Snov.io: three separate bugs in the log.

  • The adapter asked for an access token as a variable. Snov tokens live one hour, so the connector worked for an hour after setup and then answered 401. It now uses client credentials (API User ID + API Secret) and renews the token itself.
  • Balance was sent as POST and got 403; the API documents GET.
  • get-domain-emails-with-info is gone (404 every time). Domain search now uses the v2 start + result pair, plus the free get-domain-emails-count so the model can check before spending a credit. Create list moved to POST /v1/lists.

Existing Snov installs keep their old auth settings, so they need to be set up again with the ID and secret.

LINE: every error was a value the model made up (replyToken: "dummy", userId: "dummy", a message without type, an empty messages array). The message arrays now describe the message object with type required and 1 to 5 items, the descriptions say where a real userId and reply token come from, and there are four new reads: bot info, monthly quota, quota consumption and follower ids. Live: the first three answer 200, follower ids answers 403 on an unverified account, which matches the LINE docs. The hard-coded "500 per month" is gone: the live account's limit was 300, and it depends on the country.

Uzum Market: the adapter is fine. The token lists four shops but can only read one; the other three answer 500 "Whitelabel Error Page" on every call, and so does any multi-shop call that includes them. The instructions and list_shops now explain this and tell the model to query shops one at a time.

Twelve Data: plan and input errors (NDX needs Pro, US100 isn't readable on Basic, NAS100 doesn't exist). The instructions and symbol descriptions now point to ETFs such as QQQ on the Basic plan, and symbol search takes show_plan (checked live, it returns the plan per match).

Checks

  • validate-adapters, adapter-count --check, regenerate-catalog (catalog.ts unchanged)
  • jest src/adapters src/connectors/engines src/mcp-server/tool-annotations: 512 suites pass
  • New specs for Snov and LINE, new cases for Worksection, Uzum, Twelve Data and the refresh URL

…ecks

- Worksection: renew tokens at /oauth2/refresh (new optional refreshUrl in
  OAuth2 authConfig); /oauth2/token answers a refresh without an access_token,
  so connectors dropped out a day after authorizing.
- Snov.io: sign in with API User ID + Secret (client credentials) instead of a
  one-hour access token; balance is GET; domain search moves to the v2
  start/result pair; free domain email count; create list is POST /lists.
- LINE: message items require type (1 to 5), descriptions say where real
  userIds and reply tokens come from; add bot info, quota, quota consumption
  and follower ids reads; drop the hard-coded 500/month quota.
- Uzum Market: explain the 500 a shop answers when the token has no rights on it.
- Twelve Data: steer index/CFD names (NDX, NAS100, US100) to plan-readable
  ETFs; show_plan on symbol search.
- Xentral and WATI verified live, no changes needed.
@helpcodeai
helpcodeai requested a review from D3nisty as a code owner October 19, 2026 14:42
@helpcodeai
helpcodeai enabled auto-merge (squash) October 19, 2026 16:41
@helpcodeai
helpcodeai merged commit 899fbec into main Oct 19, 2026
14 checks passed
@helpcodeai
helpcodeai deleted the helpcodeai/verify-group-a2 branch October 19, 2026 16:49
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant