Curio Market troubleshooting

Troubleshooting Curio Market ingestion, indexing, retrieval, and IPNI.

This page targets the common “deal is stuck” / “indexing is failing” cases seen in support.

Before proceeding, collect the basics:


1) Deal stuck at indexing / “CheckIndex” errors

What CheckIndex is:

  • Curio runs task-based indexing and health checks; a recurring task checks for missing indexes / announcements and schedules follow-up work.

  • Implementation reference: tasks/indexing/task_check_indexes.go (task CheckIndex).

If you see errors in CheckIndex:

  • Determine whether indexing is still progressing (tasks completing) vs stalled.

  • Many “indexing failures” are actually DB health/latency problems. Verify Yugabyte health first.

Common error: duplicate key value violates unique constraint ... (SQLSTATE 23505)

What it often means:

  • Concurrent retries inserted the same identity row.

What to do:

  1. Collect: deal UUID, piece CID, task ID(s), and the full error span.

  2. Confirm whether the failing rows keep reappearing or are transient.

  3. If stuck, restart only the market/indexing layer process (not the whole cluster).


2) IPNI failures

Symptoms:

  • Indexing seems OK locally, but IPNI publishing is failing.

Checklist:

  • Outbound HTTPS works from Curio host.

  • The “public URL” for your provider is correct (reachable from the internet).

  • DNS + firewall allow inbound connectivity to your HTTP server.

Temporary mitigation:

  • If you need onboarding to proceed while IPNI is unstable, you may temporarily disable IPNI publishing (only if supported by your release/config). Document and keep track of the change so it isn’t forgotten.


3) ParkPiece: no data URL found for piece_id

What it means:

  • Curio cannot find the configured URL+headers for fetching the piece data.

Most common causes:

  • The URL was never registered, or it was registered on a different node than the one running ParkPiece.

  • Ingest layer is not enabled on the node you think.

What to collect:

  • deal UUID, piece CID

  • whether offline/online deal

  • the exact command used to add the URL (if online)


4) Retrieval looks broken, but indexing is fine

Checklist:

  • Ensure unsealed data is available on at least one node that can serve retrieval.

  • Confirm the Curio HTTP server is enabled and reachable.

  • If behind a reverse proxy, confirm TLS delegation mode matches your config.

See also:

Last updated