Özer Cem KELAHMETKELAHMET
Tabular foundation model · Resources

Troubleshooting

Every response the API returns when something needs your attention, what it is telling you, and the concrete next step.

Informational documentation. This section explains how a tabular foundation model of the Data Language Model class works: what goes in, what comes out, and how results are evaluated. It is based on the paper Data Language Models: A New Foundation Model Class for Tabular Data (arXiv:2605.06290). It is reference material, not a hosted service: hosts such as api.example.com, keys, and ids are placeholders.

Every non-2xx response carries one envelope with a machine-readable error.type and a request_id (see the error envelope). Branch on the type; quote the request_id to support.

What does each response mean?

What you see What to do
400 validation_error on POST /v2/serve/:id The message names the table or column that differs from the pinned snapshot. Send table ids and columns that match the endpoint's data, or sync the source and refresh the endpoint onto the new schema.
401 auth_error The key is missing, malformed, or revoked. Create a key on the platform's API page and send it as Authorization: Bearer.
403 auth_error The key lacks the route's scope. Use a key with read, run, serve, manage, or delete as the route requires (see Authentication).
404 not_found Check the id. Routes accept an endpoint id or its name; only the id survives a rename.
409 conflict with running_job_id A refresh or upgrade is already running on that endpoint. Wait for the job, or cancel it with POST /v2/jobs/:id/cancel, then resubmit.
409 conflict on a retried POST The Idempotency-Key was reused with a different body. Use a new key for a new request.
422 capability_unavailable The base named in the request has been retired. Omit base to use the latest model, or move the endpoint with POST /v2/endpoints/:id/upgrade (see Models).
429 rate_limit Wait for Retry-After and retry. Send large passes with "options": { "processing": "batch" } (see Rate limits).

What does each result mean?

What you see What to do
held_out.low_confidence: true low_confidence_reason names the cause: a small test partition or a target that is mostly missing. Add rows, or name a target with more values, then refresh. See Held-out reports.
target_selection picked a column you did not intend Set target.column (as table.column) and, for a numeric target, task.type: "regression". On a text-only table, always name the target.
prediction: null The request used target.mode: "none", the understanding-only configuration. Set a target to get the prediction slice.
held_out: null on a prediction A quick run prediction is in-context and carries held_out: null. Create an endpoint on the same configuration for a scored, servable prediction.
Few or no entity_matches The tables need to describe the same entities and share at least one attribute (a phone, a name, a date). Lower options.confidence_threshold to see lower-confidence candidates, and check the column_alignment list first.
A sector you did not expect Read sector.top5 and the confidence on each entry. Detection is sector-agnostic and understands the values in the table.
An imputed value looks wrong imputation.row_confidence scores each filled row. Gate on it in your pipeline, and keep the original cells; imputation never overwrites your data.
Type to search.
    ↑↓ navigate↵ open