{"record":{"id":"23dbda701bc8da6f","repo":"remotion-dev/remotion","slug":"studio-sequence-selection-is-unavailable","errorCode":null,"errorMessage":"Studio sequence selection is unavailable.","messagePattern":"Studio sequence selection is unavailable\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/studio/src/components/WebMcp.tsx","lineNumber":981,"sourceCode":"\t\t\t\t\t\t\t\tdescription: 'The sequence ID returned by get_sequences.',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\trequired: ['sequenceId'],\n\t\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\t},\n\t\t\t\t\tannotations: {readOnlyHint: false},\n\t\t\t\t\texecute: ({sequenceId}) => {\n\t\t\t\t\t\tif (typeof sequenceId !== 'string' || sequenceId.length === 0) {\n\t\t\t\t\t\t\tthrow new Error('sequenceId must be a non-empty string.');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst compositionId = currentCompositionRef.current;\n\t\t\t\t\t\tif (compositionId === null) {\n\t\t\t\t\t\t\tthrow new Error('No composition is currently selected.');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!timelineSelectionRef.current.canSelect) {\n\t\t\t\t\t\t\tthrow new Error('Studio sequence selection is unavailable.');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst timelineTrack = getCurrentTimeline().find(\n\t\t\t\t\t\t\t(candidate) => candidate.sequence.id === sequenceId,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!timelineTrack) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t`Sequence ${sequenceId} not found in the current composition.`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst selection = getTimelineSelectionFromNodePathInfo(\n\t\t\t\t\t\t\ttimelineTrack.nodePathInfo,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (selection === null) {\n\t\t\t\t\t\t\tthrow new Error(`Sequence ${sequenceId} cannot be selected.`);\n\t\t\t\t\t\t}\n","sourceCodeStart":963,"sourceCodeEnd":999,"githubUrl":"https://github.com/remotion-dev/remotion/blob/46a3a6bf13ca367376ff18bbb06dae2e87e0d068/packages/studio/src/components/WebMcp.tsx#L963-L999","documentation":"Thrown by the WebMcp select_sequence tool's execute handler: this is an environment-state guard, not an input validation. The handler checks timelineSelectionRef.current.canSelect before attempting to locate and select the sequence; when selection is disabled in the current Studio state (e.g. the timeline cannot accept a selection change, such as when the Studio is not in an interactive state that permits selecting timeline items), the MCP tool call cannot proceed. It tells the MCP client that the requested selection action is unavailable in the current Studio session, not that the sequenceId was wrong.","triggerScenarios":"Calling selectSequence with a typo'd id, an id from a different composition, or an id of a sequence not currently rendered in the timeline.","commonSituations":"Stale ids after renaming <Sequence id>, sequences nested inside compositions that are not the selected one, or hidden/collapsed tracks that are still addressable but with different ids.","solutions":["Use the MCP timeline listing to get valid sequence ids for the current composition","Add explicit id props to your <Sequence> components and use those exact strings","Verify the id is from the currently selected composition, not another one"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"const ids = getCurrentTimeline().map((t) => t.sequence.id);\nif (!ids.includes(sequenceId)) { /* pick from ids */ }","typeGuard":null,"tryCatchPattern":"catch (e) { if (e.message.includes('not found in the current composition')) { /* re-list timeline ids and retry with a valid one */ } }","preventionTips":["Fetch the timeline listing before selecting by id","Use stable explicit ids on <Sequence>"],"tags":["studio","mcp","sequence","not-found"],"backgroundTag":"resource-not-found","analyzedSha":"46a3a6bf13ca367376ff18bbb06dae2e87e0d068","analyzedAt":"2026-09-18T00:12:20.256Z","contentChangedAt":"2026-09-18T00:12:20.256Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}