Acceldata
ADOC

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.