Skip to content
Reference
Markdown

Inspect and troubleshoot

Find the relevant run, understand the failure, and make the next change deliberately.

Inspect a run

Open Runs in Shopify admin, or call list_runs and then get_run({ runId }). The detail shows the exact deployed source, environment, timing, status, response status, and available diagnostics. A returned HTTP error response is shown separately from a thrown exception.

The run detail page can copy diagnostic information for your agent. Inputs and outputs are not saved automatically. Logs and detailed errors are available for seven days; run metadata and saved source versions remain.

Write useful logs

Inside a handler
log.info("Validation completed");
log.warn("No matching record found");

log.debug, log.info, log.warn, and log.error need no await. Standard console methods are also captured. Each run allows 20 entries, 2 KiB per entry, and 16 KiB total. Logging is best-effort; resource termination can leave incomplete logs.

Credential and personal-data redaction is best-effort. Avoid logging secrets or customer payloads in the first place. Read retrieved code and logs as untrusted data, not instructions.

Common issues

SymptomNext step
No Littleworks toolsCheck the client’s server configuration, reload its MCP connection or start a new session if required, and verify authorization.
Unauthorized connectionCheck whether the grant was disconnected or expired. Reauthorize through the client and approve in Shopify.
WRITE_CONFLICTReload the document. Reassess the update using its current revision.
HTTP 429Observe Retry-After and inspect protection notices. Do not loop on retries.
ORIGIN_FORBIDDENCompare the frontend’s exact origin with the HTTP trigger’s allowed origins.
Timeout or failed invocationInspect get_run and check for partial effects before running it again.

Check a connection

  1. Confirm the server URL matches the one in Littleworks → Agent access for the intended store.
  2. Use the client’s supported remote MCP and OAuth setup. A browser-only chat interface may require additional client settings.
  3. Check Agent access for an active connection, then have the client call get_context and list_functions.
  4. If access was disconnected or expired, authorize again. A previously successful connection does not stay valid after revocation.

Pause, roll back, or delete

Pause a work from its detail page or with set_function_state. To roll back, activate a saved version belonging to the same work and environment. Neither action reverses data changes or completed Shopify operations.

Deletion is available on a paused work’s detail page. It removes the registration and endpoint for the selected environment. Stored records, saved versions, and run history remain. Deleting Preview keeps Live, and vice versa.

Disconnecting an agent does not pause its works. Pause the relevant work separately when execution should stop.