Circle V2 API Docs
    Preparing search index...
    download: QueryProcedure<
        {
            input: { runId: string };
            meta: object;
            output: {
                expiresInSeconds: number;
                fileName: string | null;
                isStale: boolean;
                patientChartId: PatientChartId;
                runId: FormRunId;
                signedUrl: string;
            };
        },
    > = ...

    A short-lived signed URL for the run's filled PDF. The chart row is written AT KICKOFF (unready, NULL file_url), so its existence says nothing about the document: both is_ready and file_url are checked, and an unready or missing chart answers PRECONDITION_FAILED (the run is real, the document just does not exist yet). A failed signing is a server fault (500), not an empty state: unlike session playback, a generated form's PDF is supposed to be there.

    isStale is derived from the data rather than remembered, because a redraw can fail and the edit is kept.