Zed 1.23.2 optional MCP fields fix: read Sume's tools_schema anyway
Zed 1.23.2 fixed OpenAI model calls to MCP servers that treated optional fields as required. For Sume, tools_schema shows which fields are required.

If a Sume tool call from Zed failed because a model filled in an optional field it should have left out, update to Zed 1.23.2, then check the tool contract with tools_schema. Zed's stable release notes for October 7, 2026 say it fixed issues where OpenAI model tool calls to MCP servers treated optional fields as required, causing errors. The fix is in the client; Sume's contract stays the same.
What the release says
The Zed fact comes from the Zed stable releases page (read 2026-10-07). The Sume tools are listed with tools_list, and one tool's input contract is returned by tools_schema, as described on MCP tools and gates.
Where the contract lives
Different clients convert JSON Schema in different ways, so the same Sume tool can behave differently across editors. A model that sees a field in the schema may send an empty value instead of leaving it out.
| Item | Where it is defined | How to check |
|---|---|---|
| Tool names and descriptions | tools_list | Ask the agent to list tools for your credential |
| Input contract of one tool | tools_schema | Ask for the schema of that tool by name |
| Which fields are required | The required list in the schema | Do not infer it from a client's form view |
idempotency_key on paid calls | Required for write and paid calls | Always send one, with a value you generate |
When a call fails
When a call fails, take these steps before you retry:
- Read the error text. A schema rejection names the field.
- Call
tools_schemafor that tool and compare it with the arguments the model sent. - Resend with only the required fields and any optional ones you mean to set. Reuse the same
idempotency_keyif the failed attempt may have reached Sume.
Retries
If a call is rejected, no job id comes back, so there is nothing to wait on. A retry after a timeout is different: use the same key, so Sume returns the original job and not a second one.
Sources
Related posts
More in Integrations
- Airtable counts failed runs too: a 100-item Sume batch on Free
Airtable counts a run each time a trigger fires, even if actions fail. If each of 100 Sume deliveries triggers one, the Free plan's 100 monthly runs are gone.
- Airtable Free has no Run a script action: start Sume runs elsewhere
Airtable says Run a script is not available on Free. Start Sume Format runs from a service you control, and let Airtable receive results as plain records.
- Airtable keeps run history 2 weeks on Free: store your Sume receipts
Airtable run history lasts 2 weeks on Free, 3 years on Enterprise. Save the Sume run id and output URL in the record so a holiday audit does not depend on it.
- Caption a MAI-Voice-2.1 narrated video: script_text keeps spelling
Burn captions on a clip voiced by MAI-Voice-2.1 or Flash: send the video URL and script_text, and Sume times the words. $0.20 for a clip up to 60 seconds.
Written by Sume