Troubleshooting

Find missing profiles and data

First locate the right profile. Then decide whether the missing evidence was never captured, has expired, or needs another bounded read.

  1. Choose the profile

    Match the response ID, method, path, and time.
  2. Check retained evidence

    Confirm the inspector exists and whether capture reported omissions.
  3. Read the next part

    Follow MCP paths and cursors for values that are still stored.
Pagination can reveal retained data. It cannot recover values that were never stored.

Find the request you actually made

Use the X-NewDebugBar-Profile response header when available. A later poll, fetch, or Livewire update may be newer than the page you meant to inspect.

The browser picker discovers requests on the current page. It is not a global browser for every retained API, command, or worker profile. Use list-debug-profiles through MCP for retained profiles outside that list.

{ "path": "/trips/kyoto-autumn", "limit": 10 }

The example is the argument object for list-debug-profiles. Match the returned request facts before opening an ID.

Check expiry and the shared directory

The default store keeps the latest 20 profiles and expires profiles after 60 minutes. A busy page or worker can fill that short history quickly. Changing retention later cannot restore a deleted profile.

If the profile should still exist, compare newdebugbar.storage.path in the browser and MCP runtimes. A custom path must point to the same accessible files. Reproduce the action after correcting the path or retention setting.

Can an empty inspector be correct?

  • No mail was sent in this profile; a worker may have sent it later.
  • A Redis-backed Laravel cache operation appears under Cache and is not duplicated under Redis.
  • The request failed before the operation you expected to run.
  • A library did not emit the Laravel events that this collector observes.
  • An event retained payload shape or a view retained a lazy value’s class, rather than evaluating arbitrary application code.

For queued work, open the correlated worker profile described in Queues.

Which limit did you reach?

What you see What to do
A inspector reports dropped or omitted records Increase the relevant capture limit only if needed, then reproduce. The old profile remains incomplete.
An MCP response returns next_cursor Use that cursor with the same profile, tool, path, and filters.
A focused response omits deeper fields Follow get-debug-profile-data from /inspectors to the returned JSON Pointer paths.
A retained string is chunked Read its next page of chunks and join them in order.
A binding is masked or a key is hashed Review the capture-time policy, then capture again if exact values are needed.

Was the evidence only available in the live browser?

Livewire’s mounted state and some browser activity belong to the current page. Saved server profiles contain server-side evidence. A read-only MCP tool cannot edit a mounted component or recover browser-only activity after navigation.

EXPLAIN is an explicit browser action. Its result is not a promise that the same plan was saved into the original profile. See Queries and Data and privacy for these boundaries.

Repeat and compare one known fact

Capture a fresh request after changing a setting. Check its new ID, the expected inspector, and one known operation or value. If processing fails, report the tool or storage error rather than treating all missing data as expiry.