Description
I am consistently facing an HTTP 500 error with an underlying gRPC error 420 UNKNOWN when trying to send images using the /api/sendImage endpoint.
This seems to happen under the GoWSPlus engine. Has anyone encountered this or knows what triggers the 420 status code from the server side?
Environment
- WAHA Version: GOWS (2026.5.1 PLUS)
- Engine: GoWS
- Deployment: Docker
Steps to Reproduce
- Call
/api/sendImage with a valid payload.
- The request fails after a short delay (~580ms).
- The server returns HTTP 500.
Expected Behavior
The image should be sent successfully, returning an HTTP 201/200 status.
Actual Behavior
The API returns an HTTP 500 internal server error due to a gRPC upstream error 420.
Logs
{
"level": 30,
"time": 1781886880104,
"pid": 7,
"hostname": "waha",
"reqId": 20133,
"req": {
"id": 20133,
"method": "POST",
"url": "/api/sendImage",
"query": {},
"params": {
"path": [
"api",
"sendImage"
]
}
},
"res": {
"statusCode": 500
},
"err": {
"type": "Error",
"message": "2 UNKNOWN: server returned error 420",
"stack": "Error: 2 UNKNOWN: server returned error 420\n at callErrorFromStatus (/app/node_modules/@grpc/grpc-js/build/src/call.js:32:19)\n at Object.onReceiveStatus (/app/node_modules/@grpc/grpc-js/build/src/client.js:193:76)\n at Object.onReceiveStatus (/app/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:367:141)\n at Object.onReceiveStatus (/app/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:327:181)\n at /app/node_modules/@grpc/grpc-js/build/src/resolving-call.js:135:78\n at process.processTicksAndRejections (node:internal/process/task_queues:84:11)\nfor call at\n at MessageServiceClient.makeUnaryRequest (/app/node_modules/@grpc/grpc-js/build/src/client.js:161:32)\n at MessageServiceClient.SendMessage (/app/node_modules/@grpc/grpc-js/build/src/make-client.js:105:19)\n at MessageServiceClient.SendMessage (/app/dist/core/engines/gows/grpc/gows.js:10542:30)\n at node:internal/util:495:21\n at new Promise (<anonymous>)\n at node:internal/util:481:12\n at /app/dist/plus/engines/gows/session.gows.plus.js:212:82\n at async TmpDir.use (/app/dist/utils/tmpdir.js:22:20)\n at async WhatsappSessionGoWSPlus.sendMedia (/app/dist/plus/engines/gows/session.gows.plus.js:202:16)\n at async WhatsappSessionGoWSPlus.sendImage (/app/dist/plus/engines/gows/session.gows.plus.js:218:16)\n at async descriptor.value (/app/dist/core/abc/activity.js:9:20)",
"code": 2,
"details": "server returned error 420",
"metadata": {
"content-type": [
"application/grpc"
]
}
},
"responseTime": 580,
"msg": "request errored"
}
[](https://waha.devlike.pro/docs/how-to/plus-version/#tiers)
Description
I am consistently facing an
HTTP 500error with an underlying gRPCerror 420 UNKNOWNwhen trying to send images using the/api/sendImageendpoint.This seems to happen under the
GoWSPlusengine. Has anyone encountered this or knows what triggers the 420 status code from the server side?Environment
Steps to Reproduce
/api/sendImagewith a valid payload.Expected Behavior
The image should be sent successfully, returning an HTTP 201/200 status.
Actual Behavior
The API returns an HTTP 500 internal server error due to a gRPC upstream error
420.Logs
{ "level": 30, "time": 1781886880104, "pid": 7, "hostname": "waha", "reqId": 20133, "req": { "id": 20133, "method": "POST", "url": "/api/sendImage", "query": {}, "params": { "path": [ "api", "sendImage" ] } }, "res": { "statusCode": 500 }, "err": { "type": "Error", "message": "2 UNKNOWN: server returned error 420", "stack": "Error: 2 UNKNOWN: server returned error 420\n at callErrorFromStatus (/app/node_modules/@grpc/grpc-js/build/src/call.js:32:19)\n at Object.onReceiveStatus (/app/node_modules/@grpc/grpc-js/build/src/client.js:193:76)\n at Object.onReceiveStatus (/app/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:367:141)\n at Object.onReceiveStatus (/app/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:327:181)\n at /app/node_modules/@grpc/grpc-js/build/src/resolving-call.js:135:78\n at process.processTicksAndRejections (node:internal/process/task_queues:84:11)\nfor call at\n at MessageServiceClient.makeUnaryRequest (/app/node_modules/@grpc/grpc-js/build/src/client.js:161:32)\n at MessageServiceClient.SendMessage (/app/node_modules/@grpc/grpc-js/build/src/make-client.js:105:19)\n at MessageServiceClient.SendMessage (/app/dist/core/engines/gows/grpc/gows.js:10542:30)\n at node:internal/util:495:21\n at new Promise (<anonymous>)\n at node:internal/util:481:12\n at /app/dist/plus/engines/gows/session.gows.plus.js:212:82\n at async TmpDir.use (/app/dist/utils/tmpdir.js:22:20)\n at async WhatsappSessionGoWSPlus.sendMedia (/app/dist/plus/engines/gows/session.gows.plus.js:202:16)\n at async WhatsappSessionGoWSPlus.sendImage (/app/dist/plus/engines/gows/session.gows.plus.js:218:16)\n at async descriptor.value (/app/dist/core/abc/activity.js:9:20)", "code": 2, "details": "server returned error 420", "metadata": { "content-type": [ "application/grpc" ] } }, "responseTime": 580, "msg": "request errored" } [](https://waha.devlike.pro/docs/how-to/plus-version/#tiers)