React Developer
Hey,
Since 1.9.6 rollout in fra (~17:00 UTC, 14 Aug),
POST /v1/functions/{functionId}/executions returns a 400 whenever the body includes an empty headers object:
"Invalid headers param: Value must be a valid string and at least 1 chars and no longer than 65535 chars" (400, general_argument_invalid, version 1.9.6)
The request is rejected at validation, so no execution record is even created. Repro with any project/function and a valid session:
curl -X POST "https://fra.cloud.appwrite.io/v1/functions/{FUNCTION_ID}/executions"
-H "X-Appwrite-Project: {PROJECT_ID}"
-H "Content-Type: application/json"
-H "Cookie: {session cookie}"
-d '{"body":"{}","async":false,"path":"/me","method":"POST","headers":{}}'
Remove "headers":{} and the same request succeeds (201). "headers":[] also works - only the empty object is rejected.
Nothing changed on our side. Our app passes headers: {} to createExecution, which is the exact usage shown in the createExecution example in your SDK docs - the server accepted it for a long time.
Our execution logs show identical requests succeeding until 17:02 UTC on 14 Aug and nothing getting through since.
Every error response since then reports version 1.9.6, so it looks like this landed with a 1.9.6 rollout or hotfix in fra around that time. This likely affects other projects too.
Our production app is live on the App Store and Google Play and every function call from it is now broken.
Happy to DM project ID / execution IDs.
Can this be treated as a production incident?