mastra-ai/mastra · error · HTTPException
Stored response ${responseId} was not found
Error message
Stored response ${responseId} was not found What it means
GET response-by-id handler: findResponseTurnRecordAcrossAgents searches all agents' memory for the given responseId; if no stored turn record matches, the handler throws HTTP 404. It is then caught by handleError and surfaced as 'Error retrieving response'.
Source
Thrown at packages/server/src/server/handlers/responses.ts:1029
},
});
export const GET_RESPONSE_ROUTE = createRoute({
method: 'GET',
path: '/v1/responses/:responseId',
responseType: 'json',
pathParamSchema: responseIdPathParams,
responseSchema: responseObjectSchema,
summary: 'Retrieve a stored response',
description: 'Returns a previously stored response object',
tags: ['Responses'],
requiresAuth: true,
requiresPermission: MastraFGAPermissions.AGENTS_READ,
handler: async ({ mastra, requestContext, responseId }) => {
try {
const responseTurnRecord = await findResponseTurnRecordAcrossAgents({ mastra, responseId, requestContext });
if (!responseTurnRecord) {
throw new HTTPException(404, { message: `Stored response ${responseId} was not found` });
}
return mapResponseTurnRecordToResponse(responseTurnRecord);
} catch (error) {
return handleError(error, 'Error retrieving response');
}
},
});
export const DELETE_RESPONSE_ROUTE = createRoute({
method: 'DELETE',
path: '/v1/responses/:responseId',
responseType: 'json',
pathParamSchema: responseIdPathParams,
responseSchema: deleteResponseSchema,
summary: 'Delete a stored response',
description: 'Deletes a stored response so it can no longer be retrieved or chained',
tags: ['Responses'],View on GitHub (pinned to 75dd419e61)
Solutions
- Confirm the response was originally created with store:true so a turn record exists.
- Point the server at the same storage backend the response was written to.
- List/re-check recent stored responses to validate the id; regenerate if the record is gone.
- Return 404 handling on the client side and start a new conversation.
Defensive patterns
Strategy: try-catch
Validate before calling
// pre-check existence before fetching
const list = await client.getResponses?.({ threadId }) ?? [];
if (!list.some(r => r.id === responseId)) return null; Try / catch
try {
return await client.getResponse(responseId);
} catch (e) {
if (isHttpError(e, 404)) return null; // treat as absent, not fatal
throw e;
} Prevention
- Only fetch ids returned from stored (store:true) responses.
- Point clients at the environment whose storage holds the record.
- Handle 404 gracefully as 'expired/pruned' in UI code.
When it happens
Trigger: GET /api/responses/:responseId (AGENTS_READ) with an id that was never stored, was deleted, or lives in a different storage backend/instance.
Common situations: Client cached a response id after the DB was reset; retrieving across environments (staging vs local dev DB); requesting ids from responses created with store:false; retention cleanup removed the record.
Related errors
- Conversation ${conversationId} was not found
- Stored response ${body.previous_response_id} was not found
- Version with id ${from} not found
- conversation_id and previous_response_id must reference the
- Responses requests require an agent_id
AI-assisted analysis of mastra-ai/mastra@75dd419e61 (2026-08-30).
Data as JSON: /api/errors/6679154b0788936c.
Report an issue: GitHub.