# Recover table links

> Show invalid table links inline and let users reset the affected settings.

Source: https://docs.inertiax.dev/table/guide/url-recovery/

A stale page or invalid filter link shows a problem inside the affected table. The rest of the page, including other tables, stays available. InertiaX does not silently remove filters or fetch a replacement result. Users choose **Reset invalid table settings** to continue.

The [standard Inertia component](https://docs.inertiax.dev/table/guide/inertia/) displays the problem and reset control automatically.

## What Reset changes

Reset removes the invalid URL settings and loads the table using its server defaults:

| Invalid setting | Parameters removed for a table named `orders`             |
| --------------- | --------------------------------------------------------- |
| Page            | `orders_page`                                             |
| Page size       | `orders_per_page`, `orders_page`                          |
| Sorting         | `orders_sort`, `orders_page`                              |
| Filters         | `orders_filters`, `orders_page`                           |
| Search          | `orders_search`, its `orders_filter` alias, `orders_page` |

When several settings are invalid, one reset clears all affected settings. Valid settings, other tables’ parameters, unrelated query values, and the URL fragment are retained. Reset replaces the current history entry.

Signed links and non-GET requests have no built-in reset. Open a new valid link instead. A failed reset request offers **Retry**; retrying a network failure is separate from resetting invalid input.

Invalid definitions, explicitly provided PHP state, broken callbacks, authorization errors, and invalid custom-source results retain their normal failures. Standalone `toArray()` serialization also remains strict.

## Customize the problem

Use [text overrides](https://docs.inertiax.dev/table/guide/text/) to change the message, or replace the [problem region](https://docs.inertiax.dev/table/guide/custom-layouts/#customize-the-problem-region) for a different layout.

## Custom sources

Report an unavailable page from `TableSource::fetch()` or a `CallbackSource` retrieval callback:

```php
use InertiaX\Table\Exceptions\TablePageUnavailableException;

if ($providerSaysPageIsUnavailable) {
    throw new TablePageUnavailableException();
}
```

InertiaX shows the problem without retrying the source. Reset removes the page parameter and requests page 1. If page 1 itself is unavailable, the table offers no reset loop. Explicitly provided PHP pagination and unpaginated sources retain strict exception handling.
