metadata_reserved_key
`metadata` used a key the emission pipeline reserves for its own state.
metadata used a key the emission pipeline reserves for its own state.
| Code | metadata_reserved_key |
| Type | invalid_request_error — Malformed or incomplete input |
| HTTP | 400 |
| Retriable? | No |
What to do
The reserved names are submit_window_opened_at, sfg_origin, sfg_codigo, sfg_estado_label and anything starting with _facturia. Use a different key. Reserved keys are also stripped from the metadata returned by GET /v1/documents/\{id\}, so what you send is what you read back.
Retrying the same request will fail the same way. Change the request, not the frequency.
The envelope
{
"error": {
"type": "invalid_request_error",
"code": "metadata_reserved_key",
"message": "…",
"hint": "The reserved names are `submit_window_opened_at`, `sfg_origin`, `sfg_codigo`, `sfg_estado_label` and anything starting with `_facturia`. Use a different key. Reserved keys are also stripped from the `metadata` returned by `GET /v1/documents/{id}`, so what you send is what you read back.",
"retriable": false,
"doc_url": "https://docs.facturia.cl/errors/metadata_reserved_key",
"request_id": "req_01K2R7Q9M4T2VB"
}
}Program against code, never against message — the prose can be rewritten, the code cannot (§5.8).
hint and retriable arrive in the response with these exact values: they are a function of code and come from the same dictionary GET /v1/error_codes serves, so the envelope and the dictionary cannot disagree. Both are English on the wire by design — one registry, one language. More in The error envelope.
See also
Every code
The error envelope
The machine-readable copy of this page lives at GET /v1/error_codes, unauthenticated.