First checks
- Confirm the organization, squid name, slot, and processor name.
- Confirm the deployed commit and manifest are the ones you intended.
- Compare the failing slot with a local run of the same commit.
- Inspect logs from the first error, not only the latest retry.
- Check processor progress and lag, not only the Cloud health badge.
- Check the upstream Portal, SQD Network dataset, or RPC separately.
- Check database storage, connections, slow queries, and migration status.
Copyable support packet
Provide this information when requesting support:“Secrets outdated. Please restart the squid”
Creating, removing, or changing an organization secret does not modify environment variables inside running processes. Restart the affected slot:squid.yaml.
Stuck in Building, Deploying, or Starting
Run these checks in order:-
Install the current CLI and verify it:
-
Build and run the exact project locally:
-
Confirm required files are present:
package.json- package-manager lockfile
tsconfig.jsoncommands.jsonsrc/squid.yaml
-
Check the
init, processor, and API commands in the manifest. -
Inspect the relevant container:
init fails, processor and API services do not start.
Healthy, but no new blocks are indexed
“Healthy” means that the service is running. It does not prove that the processor is advancing.-
Check whether
sqd_processor_last_blockchanges. -
Compare it with
sqd_processor_chain_height. -
Search processor logs for RPC, rate-limit, timeout, and data-range errors:
- Confirm the RPC has the required historical range. A non-archive endpoint can work near the head but fail during a replay.
- Confirm the selected Portal or Network dataset covers the requested blocks and data fields.
- Check whether the processor is blocked by a long database transaction.
Works locally, but not in Cloud
Compare configuration rather than changing code first:- Is Cloud running the same commit and lockfile?
- Does the manifest start the same command used locally?
- Are required variables declared under
deploy.envor the service-levelenv? - Are secrets stored in the correct organization, and was the slot restarted after changing them?
- Does local
.envcontain a value that Cloud never receives? - Is Cloud using a different RPC or Portal endpoint?
- Did the
initservice apply the expected migrations?
DB_URL, DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASS, and DB_SSL.
Models or columns are missing
Check the migration container first:- Generated entity code is included in the build.
- The migration file is committed.
deploy.init.cmdapplies migrations.- The API and processor point to the same Cloud-provided database.
- You are querying the intended slot URL.
Multi-processor status is missing
Multi-processor squids commonly store processor state in separate schemas. If a processor uses:stateSchema; do not assume every status row is in squid_processor.status.
If two processors write to the same application tables, ensure they cannot update the same record concurrently. Serialization failures usually indicate a data-ownership or transaction-isolation problem, not a Cloud restart problem.
Database query blocks indexing
Long work started throughctx.store runs inside the batch transaction. If it times out or deadlocks, the batch rolls back.
- Move periodic aggregates to a background job.
- Add indexes for frequent filters and joins.
- Use a statement timeout.
- Break backfills into bounded, resumable batches.
- Inspect and tune update-heavy tables.
Out of disk space
Check whether growth comes from indexed data, indexes, dead tuples, or a temporary backfill. Increase storage only after identifying the cause:API URL changes after deployment
A generated slot URL is intentionally tied to one deployment:Manifest validation errors
Current naming rules:- Squid name: 3 to 30 lowercase letters, numbers, or dashes.
- Slot: 2 to 6 lowercase letters, numbers, or dashes.
- Tag: 2 to 32 lowercase letters, numbers, or dashes.
- Names cannot start or end with a dash.
slot,tag, and deprecatedversioncannot be used together.- Multi-processor names must be unique.
manifest_version, not deprecated manifestVersion.
Avoid destructive recovery
Do not usesqd deploy --hard-reset as a general troubleshooting step. It drops and recreates all deployment resources, including the database, and causes API downtime.
If a clean replay is required, prefer a fresh slot, validate it, move the production tag, and retain the old slot temporarily for rollback.