turbo-lifecycle
Turbo Pipeline Lifecycle Reference
CLI commands for managing pipeline lifecycle. Covers streaming and job-mode differences. For interactive pipeline troubleshooting, use /turbo-doctor instead.
Quick Reference
| Action | Command |
|---|---|
| List all pipelines | goldsky turbo list |
| Delete by name | goldsky turbo delete <pipeline-name> |
| Delete by YAML | goldsky turbo delete -f <pipeline.yaml> |
| Pause pipeline | goldsky turbo pause <pipeline-name> |
| Resume pipeline | goldsky turbo resume <pipeline-name> |
| Restart pipeline | goldsky turbo restart <pipeline-name> |
| Restart fresh | goldsky turbo restart <pipeline-name> --clear-state |
Pipeline States
| State | Description |
|---|---|
| running | Pipeline is actively processing data |
| starting | Pipeline is initializing |
| paused | Pipeline is paused (replicas set to 0) |
| stopped | Pipeline is not running (manually stopped) |
| error | Pipeline encountered an error |
| completed | Job-mode pipeline finished processing range |
Streaming vs Job Mode Lifecycle
Streaming and job-mode pipelines behave differently for lifecycle operations:
| Operation | Streaming Pipeline | Job-Mode Pipeline (job: true) |
|---|---|---|
| List | Shows as running/paused |
Shows as running/completed |
| Pause | ✅ Supported | ❌ Not supported |
| Resume | ✅ Supported | ❌ Not supported |
| Restart | ✅ Supported | ❌ Not supported — use delete + apply |
| Delete | ✅ Supported | ✅ Supported (auto-cleanup ~1hr after done) |
| Apply | Updates in place | Must delete first, then re-apply |
Job-Mode Pipeline Lifecycle
Job-mode pipelines (job: true in YAML) are one-time batch processes. They:
- Start — process data from
start_at(orearliest) toend_block(or chain tip) - Run — process the bounded data range
- Complete — automatically stop when the range is fully processed
- Auto-cleanup — ~1 hour after completion, the pipeline is automatically removed
Key rules for job-mode pipelines:
- Cannot pause, resume, or restart — these commands return an error for job pipelines
- Cannot update in place — must delete the old job, then apply a new one
- Redeploying a job — if you need to re-run:
goldsky turbo delete my-job-pipeline goldsky turbo apply my-job-pipeline.yaml - If the job errors, it still auto-deletes ~1 hour after termination — same as successful jobs.
Pause, Resume, and Restart
Pause a Pipeline
Temporarily stop processing without deleting:
goldsky turbo pause <pipeline-name>
# or by YAML:
goldsky turbo pause -f <pipeline.yaml>
This sets deployment replicas to 0, preserving all state for later resumption.
Resume a Pipeline
Restore a paused pipeline to its running state:
goldsky turbo resume <pipeline-name>
# or by YAML:
goldsky turbo resume -f <pipeline.yaml>
You can only resume a paused pipeline. Attempting to resume an already running pipeline returns an error.
Restart a Pipeline
Trigger a pod restart for a running or paused pipeline:
goldsky turbo restart <pipeline-name>
To clear all checkpoints and reprocess from the beginning:
goldsky turbo restart <pipeline-name> --clear-state
Restart vs Resume: Use
resumeto restore a paused pipeline without restarting pods. Userestartwhen you need a fresh pod restart (e.g., after configuration changes or to recover from issues). Restart is not supported for Job-mode pipelines — usedelete+applyinstead.
Important Notes
Deletion is Permanent
- All checkpoints are lost
- Pipeline configuration is removed
- Cannot be undone
Data in Sinks is Preserved
- Data already written to PostgreSQL, ClickHouse, etc. remains
- Only the pipeline itself is deleted
- You may need to manually clean up sink data if desired
Checkpoints and Restarts
- Deleting a pipeline removes its checkpoints
- If you recreate a pipeline with the same name, it starts fresh
- To preserve checkpoints, use
goldsky turbo applyto update instead of delete/recreate
Job-Mode Pipelines Cannot Be Updated In Place
- Job pipelines (
job: true) must be deleted before redeploying - Attempting
goldsky turbo applyon an existing job returns an error:pipeline already exists - Jobs auto-cleanup ~1 hour after termination regardless of success or failure
- Always delete the old job first if redeploying:
goldsky turbo delete <name>, thengoldsky turbo apply <file.yaml>
Project Scope
goldsky turbo listshows pipelines in your current project only- Use
goldsky project listto see available projects - Pipelines are isolated per project
Common Patterns
Delete and Recreate
If you need to restart a pipeline from scratch:
-
Delete the existing pipeline:
goldsky turbo delete my-pipeline -
Deploy fresh:
goldsky turbo apply my-pipeline.yaml
This resets all checkpoints and starts processing from the configured start_at position.
Rename Instead of Delete
To keep checkpoints but change the pipeline name:
-
Update the
namefield in your YAML -
Apply the new configuration:
goldsky turbo apply my-pipeline-v2.yaml -
Delete the old pipeline:
goldsky turbo delete my-pipeline
Note: This creates a new pipeline; checkpoints don't transfer between names.
Clean Up Test Pipelines
For development, use a naming convention like test-* or dev-*:
name: test-usdc-transfers # Easy to identify for cleanup
Then clean up all test pipelines when done.
Troubleshooting
| Issue | Action |
|---|---|
| Pipeline not found | Check spelling; use goldsky turbo list to see names |
| Permission denied | Verify you have Editor or Admin role in the project |
| Delete failed | Check logs for errors; pipeline may be in transition |
| Wrong project | Use goldsky project list to verify current project |
pipeline already exists |
Job-mode pipeline — delete first, then re-apply |
| Cannot pause/resume job | Job-mode pipelines don't support pause/resume; use delete |
| Cannot restart job | Job-mode pipelines don't support restart; delete + re-apply |
Error: Pipeline Not Found
Error: Pipeline 'wrong-name' not found
Fix: Run goldsky turbo list to see exact pipeline names. Names are case-sensitive.
Error: Permission Denied
Error: Permission denied
Fix: You need Editor or Admin role. Contact a project Owner to upgrade your role.
Related
/turbo-doctor— Interactive diagnostic skill for pipeline issues/turbo-builder— Build and deploy new pipelines
More from goldsky-io/goldsky-agent
turbo-builder
Build and deploy new Goldsky Turbo pipelines from scratch. Triggers on: 'build a pipeline', 'index X on Y chain', 'set up a pipeline', 'track transfers to postgres', or any request describing data to move from a chain/contract to a destination (postgres, clickhouse, kafka, s3, webhook). Covers the full workflow: requirements → dataset selection → YAML generation → validation → deploy. Not for debugging (use /turbo-doctor) or syntax lookups (use /turbo-pipelines).
38turbo-pipelines
Turbo pipeline YAML reference and architecture guide. Covers: YAML field syntax (start_at, from, version, primary_key), source/transform/sink configuration, validation errors, resource sizing (xs–xxl), architecture decisions (dataset vs kafka, streaming vs job, fan-out vs fan-in, sink selection, pipeline splitting). Triggers on: 'what does field X do', 'what fields does a postgres sink need', 'what resource size', 'should I use kafka or dataset', 'how to structure my pipeline'. For writing transforms, use /turbo-transforms. For end-to-end building, use /turbo-builder.
38turbo-doctor
Diagnose and fix broken Goldsky Turbo pipelines interactively. Triggers on: pipeline in error state, stuck starting, connection refused, not getting data, duplicate rows, missing fields, slow backfill, or any named pipeline misbehaving. Runs logs/status commands, identifies root cause, and offers fixes. For CLI syntax or error pattern lookup without an active problem, use /turbo-operations instead.
34secrets
Use this skill when a user wants to store, manage, or work with Goldsky secrets — the named credential objects used by pipeline sinks. This includes: creating a new secret from a connection string or credentials, listing or inspecting existing secrets, updating or rotating credentials after a password change, and deleting secrets that are no longer needed. Trigger for any query where the user mentions 'goldsky secret', wants to securely store database credentials for a pipeline, or is working with sink authentication for PostgreSQL, Neon, Supabase, ClickHouse, Kafka, S3, Elasticsearch, DynamoDB, SQS, OpenSearch, or webhooks.
33datasets
Use this skill when the user needs to look up or verify Goldsky blockchain dataset names, chain prefixes, dataset types, or versions. Triggers on questions like 'what\\'s the dataset name for X?', 'what prefix does Goldsky use for chain Y?', 'what version should I use for Z?', or 'what datasets are available for Solana/Stellar/Arbitrum/etc?'. Also use for chain-specific dataset questions (e.g., polygon vs matic prefix, stellarnet balance datasets, solana token transfer dataset names). Do NOT trigger for questions about CLI commands, pipeline setup, or general Goldsky architecture unless the core question is about finding the right dataset name or chain prefix.
33turbo-transforms
Write SQL, TypeScript, and dynamic table transforms for Turbo pipelines. Covers: decoding EVM logs with _gs_log_decode, filtering/casting blockchain data, UNION ALL for combining events, TypeScript/WASM transforms (invoke function), dynamic lookup tables (dynamic_table_check), transform chaining, and Solana decoding. Triggers on: 'decode Transfer events', 'write a SQL transform', 'filter by contract', 'TypeScript transform', 'dynamic table', 'UNION ALL'. For pipeline YAML structure, use /turbo-pipelines. For end-to-end building, use /turbo-builder.
32