MCP unsupported_payload_keys: read the allowed array
A key a Sume MCP tool does not list returns unsupported_payload_keys with unexpected, allowed, tool and sometimes path. Fix it from the allowed list.

Sume's hosted MCP tools check the payload against a list of allowed keys. A key outside that list is not ignored. The call fails with the code unsupported_payload_keys before any job is created. This differs from unsupported_tool_arguments, which is about keys next to the payload; here the unknown key is inside it.
The shape of the error
The message says the tool payload has unsupported keys. The data carries unexpected, the array of keys that were refused; allowed, the full list the tool accepts; and tool, the tool name. When the unknown key is nested, the message adds the location, such as unsupported keys at a path, and the data includes a path field.
The allowed list mirrors the public OpenAPI request for the matching REST route. So the list you receive follows the public API contract for that tool.
A fix that works every time
Do not delete the key and retry blindly. Compare unexpected with allowed. Often the key is a near miss, such as a field from another model's request. If a tool adds a hint, follow it: for music_create the message says Music 1.0 is prompt-driven and that duration and duration_seconds must not be sent.
Keep the same idempotency_key on the corrected call. The first call never ran, so there is nothing to duplicate.
// refused
{ "idempotency_key": "clip-41", "payload": { "prompt": "a calm lake", "fps_boost": true } }
// error data (shape)
{ "code": "unsupported_payload_keys", "unexpected": ["fps_boost"], "allowed": ["prompt", "..."], "tool": "generate_video" }Make the agent do it
Give the agent one rule in its system prompt: when a call fails with unsupported_payload_keys, drop only the keys in unexpected, check them against allowed, and retry once. Without the rule, models tend to rewrite the whole payload and introduce a new bad key. Log the tool and unexpected values; they show which fields your prompts keep inventing.
Sources
Related posts
More in Integrations
- MCP wrong_tool from generate_video: lip sync and motion control
Sume's generate_video refuses minimax/h3-max/lip-sync and the Kling 3.0 motion-control model with wrong_tool. next_action names the tool to call instead.
- Meta Ads connector: what Refresh tools does in Sume
Refresh tools re-runs discovery with the same Meta grant and swaps the catalog atomically. If it fails, the old catalog stays. A page reload does not refresh.
- Meta Ads MCP has 97 tools; Sume exposes 52 reviewed reads
Meta's ads MCP listed 97 tools on 2026-09-09. Sume allows 52 exact reviewed reads and excludes 45, since a name or read-only flag is not enough.
- Meta Ads MCP: dynamic registration invalid_client_metadata
Meta's ads MCP rejected a direct public-client registration on 2026-09-06 (invalid_client_metadata), so Sume uses a pre-approved Meta client id.
Written by Sume