Pipeline Continuation IDs (Multi-Script Runs)
A continuation ID lets multiple scripts or services update the same pipeline run.
When to Use Continuation IDs
Use a continuation ID when:
- A workflow runs across multiple scripts.
- Different services report progress into one logical run.
- An orchestrator triggers separate processes (for example, cron or CI jobs).
Core Idea
- Script 1 creates the run with a continuation_id.
- Later scripts fetch the same run with the same continuation_id.
- The final script marks the run complete.
Step 1: Create a Run with a Continuation ID
import os
from acceldata.client.adoc_client import AdocClient
from acceldata.models.sdk.pipeline.create_pipeline_input_request import (
CreatePipelineInputRequest,
)
from acceldata.models.sdk.pipeline.pipeline_run_input import PipelineRunInput
ADOC_URL = os.environ.get("URL", "https://<your-adoc-url>")
ADOC_ACCESS_KEY = os.environ.get("ACCESS_KEY", "<your-access-key>")
ADOC_SECRET_KEY = os.environ.get("SECRET_KEY", "<your-secret-key>")
PIPELINE_UID = os.environ.get("PIPELINE_UID", "sdk_snippet_customers_pipeline")
client = AdocClient(
url=ADOC_URL,
access_key=ADOC_ACCESS_KEY,
secret_key=ADOC_SECRET_KEY,
connection_timeout_ms=30000,
read_timeout_ms=30000,
)
pipeline = client.create_pipeline(
CreatePipelineInputRequest(
uid=PIPELINE_UID,
name="Monthly reporting pipeline",
)
)
continuation_id = "monthly-reporting-2026-07"
run = pipeline.create_pipeline_run(
PipelineRunInput(continuation_id=continuation_id),
)
run.create_root_span(uid="root.span.uid")
Step 2: Attach in Another Script and Complete the Run
import os
from acceldata.client.adoc_client import AdocClient
from acceldata.models.sdk.pipeline.pipeline_run_input import (
PipelineRunResult,
PipelineRunStatus,
)
ADOC_URL = os.environ.get("URL", "https://<your-adoc-url>")
ADOC_ACCESS_KEY = os.environ.get("ACCESS_KEY", "<your-access-key>")
ADOC_SECRET_KEY = os.environ.get("SECRET_KEY", "<your-secret-key>")
PIPELINE_UID = os.environ.get("PIPELINE_UID", "sdk_snippet_customers_pipeline")
client = AdocClient(
url=ADOC_URL,
access_key=ADOC_ACCESS_KEY,
secret_key=ADOC_SECRET_KEY,
connection_timeout_ms=30000,
read_timeout_ms=30000,
)
continuation_id = "monthly-reporting-2026-07"
pipeline = client.get_pipeline(PIPELINE_UID)
run = pipeline.get_run(continuation_id=continuation_id)
pipeline = client.get_pipeline(PIPELINE_UID)
run.update_pipeline_run(
result=PipelineRunResult.SUCCESS,
status=PipelineRunStatus.COMPLETED,
)
Rules to Keep Runs Consistent
- Use one continuation_id per logical run.
- Use the same pipeline UID in all scripts.
- Do not mark the run terminal until the final step.
- Keep run creation to one owner script when possible.
Troubleshooting
Symptom | Likely Cause |
Run not found | Check the continuation_id and the pipeline UID. |
Wrong run attached | The same continuation ID was reused for a different logical run. |
Downstream script cannot write | The run was completed too early. |
