When using the @openrouter/agent SDK with a single model, OpenRouter Server Tools work correctly.
However, when using the models parameter to configure model fallback, the request fails with:
file:///home/jdm/autre/openrouter-issue-poc/node_modules/@openrouter/sdk/esm/models/errors/badrequestresponseerror.js:41
return new BadRequestResponseError(remapped, {
^
BadRequestResponseError: Server tool request failed
at Object.transform (file:///home/jdm/autre/openrouter-issue-poc/node_modules/@openrouter/sdk/esm/models/errors/badrequestresponseerror.js:41:12)
at inst._zod.parse (file:///home/jdm/autre/openrouter-issue-poc/node_modules/zod/v4/classic/schemas.js:1084:28)
at handlePipeResult (file:///home/jdm/autre/openrouter-issue-poc/node_modules/zod/v4/core/schemas.js:1975:22)
at inst._zod.parse (file:///home/jdm/autre/openrouter-issue-poc/node_modules/zod/v4/core/schemas.js:1966:16)
at Module.<anonymous> (file:///home/jdm/autre/openrouter-issue-poc/node_modules/zod/v4/core/parse.js:6:32)
at inst.parse (file:///home/jdm/autre/openrouter-issue-poc/node_modules/zod/v4/classic/schemas.js:73:42)
at safeParseResponse.request.request (file:///home/jdm/autre/openrouter-issue-poc/node_modules/@openrouter/sdk/esm/lib/matchers.js:167:74)
at safeParseResponse (file:///home/jdm/autre/openrouter-issue-poc/node_modules/@openrouter/sdk/esm/lib/matchers.js:192:19)
at matchFunc (file:///home/jdm/autre/openrouter-issue-poc/node_modules/@openrouter/sdk/esm/lib/matchers.js:167:28)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
statusCode: 400,
body: '{"error":{"message":"Server tool request failed","code":400,"metadata":{"provider_name":null,"previous_errors":[{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"}]}},"user_id":"user_374Pd0xxWDijSbXDj65djGvgzqv"}',
headers: Headers {},
contentType: 'application/json',
rawResponse: Response {},
'data$': {
error: {
code: 400,
message: 'Server tool request failed',
metadata: {
provider_name: null,
previous_errors: [
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' }
]
}
},
userId: 'user_374Pd0xxWDijSbXDj65djGvgzqv',
'request$': Request {},
'response$': Response {},
'body$': '{"error":{"message":"Server tool request failed","code":400,"metadata":{"provider_name":null,"previous_errors":[{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"},{"code":400,"message":"Server tool request failed"}]}},"user_id":"user_374Pd0xxWDijSbXDj65djGvgzqv"}'
},
error: {
code: 400,
message: 'Server tool request failed',
metadata: {
provider_name: null,
previous_errors: [
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' },
{ code: 400, message: 'Server tool request failed' }
]
}
},
userId: 'user_374Pd0xxWDijSbXDj65djGvgzqv'
}
The same result occurs with any model and any server tool.
When using the @openrouter/agent SDK with a single model, OpenRouter Server Tools work correctly.
However, when using the models parameter to configure model fallback, the request fails with:
{ code: 400, message: 'Server tool request failed' }Working Example :
Output :
Failing example :
Output :
The same result occurs with any model and any server tool.