# Error reference

> Look up frontend error codes and Laravel exception classes.

Source: https://docs.inertiax.dev/table/errors/

Use the first error’s code, message, table ID, and diagnostic path to find the failed operation. For visible symptoms, start with [Troubleshooting](https://docs.inertiax.dev/table/troubleshooting/).

Definition and configuration errors require a code or input change. Retry only when the underlying request failure is transient; see [Request lifecycle](https://docs.inertiax.dev/table/guide/request-lifecycle/#status-refresh-and-retry).

## Protocol

| Code                                    | Meaning and common cause                                                                                                                         | Inspect and correct                                                                                                                                   |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `INERTIAX_PROTOCOL_VERSION_UNSUPPORTED` | The envelope declares a protocol version the installed decoder does not support. Package versions or a cached server response commonly disagree. | Compare `protocolVersion` with the decoder’s `supportedProtocolVersion`; align compatible Laravel and npm packages and clear stale cached responses.  |
| `INERTIAX_PROTOCOL_DECODE_FAILED`       | Schema or Table semantic validation rejected the envelope. The error includes a path and diagnostics.                                            | Inspect the first diagnostic and the Laravel-produced prop; fix the producer, custom transformer, or unsupported hand-authored envelope at that path. |

## Runtime, catalogs, and pipelines

| Code                                      | Meaning and common cause                                                                                                              | Inspect and correct                                                                                                                                                            |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `INERTIAX_RUNTIME_CONFIGURATION_INVALID`  | Runtime construction received an invalid diagnostics policy or component-scope configuration.                                         | Inspect runtime options and component ID; pass supported policy values and non-empty unique component IDs.                                                                     |
| `INERTIAX_RUNTIME_DISPOSED`               | Code tried to create or use runtime-owned resources after disposal.                                                                   | Find the owner that disposed the runtime; create work inside the provider/session lifetime instead of retaining stale references.                                              |
| `INERTIAX_CATALOG_ENTRY_DUPLICATE`        | A `register` operation reused a key already visible in that catalog.                                                                  | Inspect catalog purpose, key, source, and `inspectCatalogs()`; rename the contribution or deliberately use `replace`.                                                          |
| `INERTIAX_CATALOG_ENTRY_MISSING`          | A `replace` operation targeted a key that does not exist.                                                                             | Inspect the resolved catalog and contribution order; register a new namespaced key or correct the replacement key.                                                             |
| `INERTIAX_CATALOG_IMPLEMENTATION_INVALID` | A catalog value failed its implementation validator, usually because the contribution is not the expected renderer or input function. | Inspect the failing key/source and the catalog’s expected public type; supply a compatible implementation.                                                                     |
| `INERTIAX_CATALOG_RESOLUTION_FAILED`      | No implementation or allowed fallback exists for a requested semantic key.                                                            | Inspect the namespaced protocol type, installed renderer contribution, and catalog fallback policy; register the missing frontend implementation or correct the produced type. |
| `INERTIAX_CATALOG_FALLBACK_USED`          | A structured diagnostic reports that an unknown namespaced type used the configured fallback. It is not necessarily thrown.           | Inspect `runtime.diagnostics`, its component ID/key/source, and both backend and frontend extension registration. Use `fallback: 'error'` while diagnosing strict coverage.    |
| `INERTIAX_PIPELINE_STAGE_DUPLICATE`       | An `add` operation reused an existing pipeline stage name.                                                                            | Inspect pipeline stages and contribution scopes; give the stage a unique stable name or use `replaceStage()` deliberately.                                                     |
| `INERTIAX_PIPELINE_STAGE_MISSING`         | A `replace` or `remove` operation targeted a stage that is absent.                                                                    | Inspect pipeline order and names; correct the target or use `addStage()` for a new stage.                                                                                      |
| `INERTIAX_PIPELINE_STAGE_FAILED`          | A schema pipeline stage threw while transforming an envelope.                                                                         | Inspect the stage name and `cause`; make the transformation deterministic and valid for every accepted envelope.                                                               |
| `INERTIAX_PIPELINE_OUTPUT_INVALID`        | A stage completed but its output no longer decodes as an envelope.                                                                    | Inspect the attached protocol diagnostic/path and the last stage output; keep transforms within the protocol schema and Table semantics.                                       |

## Table state, requests, sessions, and integrations

| Code                                               | Meaning and common cause                                                                                     | Inspect and correct                                                                                                                          |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `INERTIAX_TABLE_STATE_INVALID`                     | Pagination, sorting, filters, search, selection, or visibility state is invalid for the current Table.       | Inspect the message/path and current component capabilities/definitions; send bounded state using the Table controller.                      |
| `INERTIAX_TABLE_LOCATION_STATE_INVALID`            | URL/location values cannot be decoded into valid Table state.                                                | Inspect the component-prefixed query values; remove stale or malformed values and ensure custom location integrations preserve the encoding. |
| `INERTIAX_TABLE_TRANSITION_UNSUPPORTED`            | A requested state transition is disabled by capabilities or unsupported for the current definition.          | Inspect the transition and Table capabilities; enable the feature on Laravel definitions or stop dispatching that transition.                |
| `INERTIAX_TABLE_REQUEST_CONFIGURATION_INVALID`     | Request coordinator options such as component ID, debounce, scheduler, or executor are invalid.              | Inspect coordinator construction and use supported non-negative timing plus a stable component ID.                                           |
| `INERTIAX_TABLE_REQUEST_COMPONENT_MISMATCH`        | A request envelope or state belongs to a different component than the coordinator.                           | Compare all component IDs and avoid sharing one session/coordinator across Tables.                                                           |
| `INERTIAX_TABLE_REQUEST_COORDINATOR_DISPOSED`      | A request was scheduled after its coordinator was disposed.                                                  | Trace unmount/disposal and stop retained controller callbacks from targeting the dead session.                                               |
| `INERTIAX_TABLE_SESSION_CONFIGURATION_INVALID`     | Session construction received invalid runtime, pipeline, integration, timing, or component options.          | Inspect session options and the error cause; check that the runtime, integration, and pipeline are valid for this table.                     |
| `INERTIAX_TABLE_SESSION_COMPONENT_MISMATCH`        | Initial or updated envelope component identity differs from the session identity.                            | Compare the renderer prop/component ID with server output and integration routing; never route one Table’s response to another.              |
| `INERTIAX_TABLE_SESSION_DISPOSED`                  | A controller or subscription operation targeted a disposed Table session.                                    | Find stale callbacks or refs retained after unmount; reacquire the current controller/session.                                               |
| `INERTIAX_TABLE_SESSION_RESET_UNAVAILABLE`         | The current outcome or integration cannot reset external state.                                              | Check the problem snapshot’s `canReset` before offering reset.                                                                               |
| `INERTIAX_TABLE_SESSION_STATE_UNAVAILABLE`         | A result-only operation was called during a table problem.                                                   | Branch on the snapshot’s `outcome`; no successful state exists until recovery.                                                               |
| `INERTIAX_TABLE_SESSION_RETRY_UNAVAILABLE`         | `retry()` was called without a failed request that can be repeated.                                          | Inspect session status; only expose retry for a request-error state.                                                                         |
| `INERTIAX_TABLE_SESSION_UPDATE_INVALID`            | An integration update is malformed, stale in an invalid way, mismatched, or contains an invalid envelope.    | Inspect update source, revision, request ID, component ID, and nested cause; correct the integration rather than mutating the session.       |
| `INERTIAX_TABLE_INTEGRATION_CONFIGURATION_INVALID` | Integration factory/session configuration is inconsistent or incomplete.                                     | Inspect adapter options, initial props/envelopes, capabilities, and component IDs.                                                           |
| `INERTIAX_TABLE_INTEGRATION_COMPONENT_NOT_FOUND`   | The integration has no initial envelope for the requested component.                                         | Inspect the server prop or memory-integration envelope list and ensure the requested Table ID is present.                                    |
| `INERTIAX_TABLE_INTEGRATION_COMPONENT_MISMATCH`    | Integration data or an update names a different component.                                                   | Compare factory/session/update component IDs and fix routing or prop selection.                                                              |
| `INERTIAX_TABLE_INTEGRATION_SESSION_EXISTS`        | A second live integration session claimed the same component in a factory that requires exclusive ownership. | Dispose the prior session or use an isolated factory per independently owned renderer.                                                       |
| `INERTIAX_TABLE_INTEGRATION_SESSION_DISPOSED`      | Integration-session methods were called after disposal.                                                      | Trace component unmount and retained callbacks; stop using the stale session.                                                                |
| `INERTIAX_TABLE_INTEGRATION_FACTORY_DISPOSED`      | A session or envelope read was requested after factory disposal.                                             | Keep factory lifetime at least as long as all sessions, or construct a new factory.                                                          |
| `INERTIAX_TABLE_INTEGRATION_REQUEST_DUPLICATE`     | The adapter received the same request ID more than once.                                                     | Inspect controller sharing and dispatch plumbing; dispatch each coordinator request exactly once.                                            |
| `INERTIAX_TABLE_INTEGRATION_REQUEST_UNKNOWN`       | An update or cancellation references a request the integration does not own.                                 | Inspect request IDs/revisions and adapter bookkeeping; do not synthesize or cross-route update IDs.                                          |
| `INERTIAX_TABLE_INTEGRATION_REQUEST_CANCELLED`     | A request was superseded or the owning session was disposed.                                                 | Inspect the cancellation reason. Superseded requests are expected; suppress stale results and allow the latest request to finish.            |
| `INERTIAX_TABLE_INTEGRATION_DISPATCH_FAILED`       | The integration could not dispatch or obtain a valid result.                                                 | Inspect the nested `cause`, network/server response, and produced envelope before retrying.                                                  |
| `INERTIAX_TABLE_INTEGRATION_LOCATION_UNSUPPORTED`  | Location behavior was requested from an integration whose capabilities do not include it.                    | Check `capabilities.location`; omit location wiring or implement the full location session contract.                                         |

## React

| Code                                         | Meaning and common cause                                                                                              | Inspect and correct                                                                                                                                                |
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `INERTIAX_REACT_SERVICES_MISSING`            | An app-service hook is outside `InertiaXProvider` from `@inertiax/react`.                                             | Read services inside that provider; it is separate from `TableProvider`.                                                                                           |
| `INERTIAX_REACT_QUERY_HOST_MISSING`          | `useQueryHost()` has no supplied query service.                                                                       | Supply a host through `InertiaXProvider queryHost={host}` before reading it.                                                                                       |
| `INERTIAX_REACT_PROVIDER_MISSING`            | A React renderer or hook is outside `TableProvider`.                                                                  | Put one provider around the application/page tree before rendering InertiaX components.                                                                            |
| `INERTIAX_REACT_RUNTIME_OWNERSHIP_INVALID`   | Provider/renderer runtime ownership options conflict, commonly mixing an external runtime with owned runtime options. | Inspect `runtime`, `runtimeOptions`, and provider nesting; choose exactly one clear owner and dispose external runtimes yourself.                                  |
| `INERTIAX_REACT_TABLE_SCOPE_MISSING`         | A Table hook or built-in UI rendered outside `TableRenderer`’s component scope.                                       | Inspect the component tree; keep Table hooks, regions, cells, and filters below the matching Table renderer.                                                       |
| `INERTIAX_REACT_TABLE_PROJECTION_INVALID`    | Protocol rows/columns/state cannot be projected safely into TanStack Table.                                           | Inspect component ID and message for missing/duplicate column IDs, unsafe row IDs, or invalid controlled state; correct the producer or custom column definitions. |
| `INERTIAX_REACT_TABLE_CUSTOMIZATION_INVALID` | Theme, text, region, renderer, input, or event customization has an invalid key, operation, or value.                 | Inspect the named customization path and public customization types; use supported add/replace/remove semantics and valid React functions.                         |

## React-Inertia

| Code                                         | Meaning and common cause                                     | Inspect and correct                                                       |
| -------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------- |
| `INERTIAX_INERTIA_CONFIGURATION_INVALID`     | Invalid prop, owned keys or query edit.                      | Check host options and write only declared keys.                          |
| `INERTIAX_INERTIA_PROP_MISSING`              | The named Inertia page prop does not exist.                  | Match `AppTable`’s prop to the Laravel response; wait for deferred props. |
| `INERTIAX_INERTIA_CHANNEL_EXISTS`            | A prop or query key already has an owner.                    | Dispose the old channel before acquiring its replacement.                 |
| `INERTIAX_INERTIA_CHANNEL_DISPOSED`          | An operation targeted a disposed channel.                    | Use the current mounted owner.                                            |
| `INERTIAX_INERTIA_HOST_DISPOSED`             | An operation targeted a disposed host.                       | Keep the host alive for its consumers or create a new one.                |
| `INERTIAX_INERTIA_REQUEST_CANCELLED`         | The native query was cancelled or superseded.                | Wait for the current request; inspect navigation and owner lifetime.      |
| `INERTIAX_INERTIA_RELOAD_FAILED`             | The native reload failed or lacked an accepted projection.   | Inspect the cause and network response.                                   |
| `INERTIAX_TABLE_QUERY_CONFIGURATION_INVALID` | Missing query capability, invalid prop or unsupported reset. | Supply a query host and avoid resetting signed URLs.                      |
| `INERTIAX_TABLE_QUERY_PROP_INVALID`          | The host prop is not a valid Table envelope.                 | Inspect the nested protocol error and Laravel response.                   |
| `INERTIAX_TABLE_QUERY_COMPONENT_MISMATCH`    | The response or request belongs to another Table ID.         | Match the Table ID and requested prop.                                    |
| `INERTIAX_TABLE_QUERY_SESSION_EXISTS`        | A Table integration already has a live session.              | Use one factory per rendered Table and dispose its prior session.         |
| `INERTIAX_TABLE_QUERY_SESSION_DISPOSED`      | An operation targeted a disposed Table session.              | Remove callbacks retained beyond unmount.                                 |
| `INERTIAX_TABLE_QUERY_FACTORY_DISPOSED`      | A read or session creation used a disposed factory.          | Create a new factory for subsequent owners.                               |
| `INERTIAX_TABLE_QUERY_REQUEST_DUPLICATE`     | A Table request ID was dispatched twice.                     | Preserve one dispatch per request identity.                               |
| `INERTIAX_TABLE_QUERY_REQUEST_CANCELLED`     | The Table query was cancelled or superseded.                 | Wait for the latest intent.                                               |
| `INERTIAX_TABLE_QUERY_RELOAD_FAILED`         | The query service or Table projection failed.                | Inspect the nested cause and protocol diagnostics.                        |

## Laravel exceptions

Laravel exceptions include the Table ID, class, lifecycle phase, source kind, feature key/type, state path, or protocol diagnostic whenever that context exists. Read that context before changing the query or definition.

| Exception                        | Meaning and common cause                                                                                                                                                                               | Inspect and correct                                                                                                                                                                                                                                    |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `InertiaXException`              | Base class for Laravel failures. A concrete subclass normally gives the actionable boundary.                                                                                                           | Inspect the concrete class, full message, and previous exception. Catch the base only when adding application-wide reporting.                                                                                                                          |
| `ColumnDefinitionException`      | Column preparation or definition validation failed, such as a duplicate/invalid key or unsupported option.                                                                                             | Inspect the Table/phase and offending Column definition; correct authoring or auto-column inference inputs.                                                                                                                                            |
| `ComponentIdentityException`     | A component property name cannot serve as the component ID and query namespace.                                                                                                                        | Use 1–64 characters, beginning with an ASCII letter and followed only by letters, numbers, `_`, or `-`; keep it stable and page-unique.                                                                                                                |
| `DataSourceException`            | The Table could not resolve a source or accept a custom result.                                                                                                                                        | Inspect `resolveDataSource` or `executeCustomSource`, source capability, and previous exception; use a supported data input and check the custom result’s rows/total. See [Source API](https://docs.inertiax.dev/table/reference/source/).             |
| `DeferredCallbackException`      | A user callback could not be reflected, injected, invoked, or returned an acceptable value.                                                                                                            | Inspect surface, phase, feature, source kind, and previous exception; correct the callback signature and return contract.                                                                                                                              |
| `DefinitionCompositionException` | Definition composition is invalid, or a Table subclass conflicts with the supported class-option configuration surface.                                                                                | Follow the protected static default or fluent method named in the error, or inspect duplicate additions, missing replacement/removal targets, and invalid contributed definitions.                                                                     |
| `FilterDefinitionException`      | A Filter/Clause definition or option source is invalid, such as a filter with no clauses, a built-in clause given a value type it does not compare, or an option source the table’s source cannot run. | Inspect filter key, phase, source capability, and previous exception; correct clauses, inputs, options, validators, or source declarations. A filter without a key fails with another error, which names its class and says to pass a key to `make()`. |
| `FilterStateException`           | Submitted filter structure/value is invalid or cannot be applied.                                                                                                                                      | Inspect filter path, key, Clause, source, and reason; send state within depth/count/type/option limits.                                                                                                                                                |
| `PaginationStateException`       | Submitted page/page-size state is invalid or incompatible with Table options.                                                                                                                          | Inspect pagination path and configured page-size options; use positive one-based pages and an allowed size.                                                                                                                                            |
| `ProducedProtocolException`      | Final Laravel output failed schema/semantic validation or JSON serialization.                                                                                                                          | Inspect `path()`, `keyword()`, all diagnostics, component/version, and the producer/transformer at that path.                                                                                                                                          |
| `RowIdentityException`           | A row key is missing, duplicated, non-scalar, or unsafe for JavaScript identity.                                                                                                                       | Inspect row index/key; provide unique string or JavaScript-safe integer identities, stringifying large database IDs.                                                                                                                                   |
| `SearchStateException`           | Search input has an invalid type, exceeds the length limit, conflicts with another search parameter, or cannot be applied to the source.                                                               | Inspect the search path, source, and searchable columns; see [Search limits](https://docs.inertiax.dev/table/reference/table/#search).                                                                                                                 |
| `SortingStateException`          | Sort state has invalid keys/directions/duplicates or cannot be applied.                                                                                                                                | Inspect sort path/source and sortable Columns; use unique keys. For source-owned ordering, disable Table sorting.                                                                                                                                      |
| `SourceCapabilityException`      | A callback or operation did not declare the active source kind.                                                                                                                                        | Inspect operation, feature, actual source, and declared capabilities. Custom retrieval owns its query operations; only compatible metadata callbacks can declare Custom support.                                                                       |
| `TablePageUnavailableException`  | A custom source explicitly reports that a requested page no longer exists.                                                                                                                             | Throw only from custom-source retrieval; Inertia URL pagination shows an inline problem; an explicit reset requests page 1. See [Custom-source recovery](https://docs.inertiax.dev/table/guide/url-recovery/#custom-sources).                          |

## Request help

For help with an error, email <contact@inertiax.dev>. Include:

- the first InertiaX code or Laravel exception class and complete message;
- the first protocol diagnostic/path, Table ID, and request ID;
- installed InertiaX package versions and matched Inertia server/client generation;
- Laravel, PHP, Node, browser, and package-manager versions;
- Eloquent, Collection, or Custom source kind and a minimized Table definition/state;
- the failing operation, approximate timestamp/time zone, and whether it reproduces locally, in CI, or in production.

Before sending, replace credentials, authorization/cookie headers, account-specific registry URLs, private hostnames, user/tenant identifiers, and row values with clear redaction markers. Do not attach `auth.json`, `.npmrc`, environment dumps, lockfile credentials, screenshots containing tokens, or an unredacted database payload.

To report a vulnerability, see [Security](https://docs.inertiax.dev/security/) instead.
