The problem
When receiving a reaction (emoji) from an external contact via the /v1/receive endpoint in MODE=normal, the API returns a dataMessage envelope where message is null, but the expected reaction object (containing emoji, targetSentTimestamp, etc.) is entirely missing from the JSON output.
To Reproduce
Run the API in MODE=normal.
Send a text message from an external Signal account to the API number.
Call GET /v1/receive/+<number>.
While the poll is active, react to the message from the external account with an emoji (e.g., 👍).
Observe the JSON output.
Actual Behavior
The API returns a valid JSON structure for the event, but the dataMessage is empty except for the timestamp and null-message:
JSON
{
"envelope": {
"source": "+49123456789",
"sourceNumber": "+49123456789",
"timestamp": 1772140664347,
"dataMessage": {
"timestamp": 1772140664347,
"message": null,
"expiresInSeconds": 0,
"isExpirationUpdate": false,
"viewOnce": false
}
}
}
Expected Behavior
The dataMessage should contain a reaction object, similar to how the /v1/reactions POST endpoint structures its input:
JSON
"dataMessage": {
"timestamp": 1772140664347,
"message": null,
"reaction": {
"emoji": "👍",
"targetAuthor": "+49987654321",
"targetSentTimestamp": 1772140661000,
"isRemove": false
}
}
Context
Mode: normal (Native)
Version: [Deine Version, z.B. 0.7.x]
Note: Normal text messages are received correctly. Only reactions seem to lose their payload during JSON serialization.
Are you using the latest released version?
Have you read the troubleshooting page?
What type of installation are you running?
signal-cli-rest-api Docker Container
In which mode are you using the docker container?
Normal Mode
What's the architecture of your host system?
x86-64
Additional information
No response
The problem
When receiving a reaction (emoji) from an external contact via the /v1/receive endpoint in MODE=normal, the API returns a dataMessage envelope where message is null, but the expected reaction object (containing emoji, targetSentTimestamp, etc.) is entirely missing from the JSON output.
To Reproduce
Actual Behavior
The API returns a valid JSON structure for the event, but the dataMessage is empty except for the timestamp and null-message:
JSON
{
"envelope": {
"source": "+49123456789",
"sourceNumber": "+49123456789",
"timestamp": 1772140664347,
"dataMessage": {
"timestamp": 1772140664347,
"message": null,
"expiresInSeconds": 0,
"isExpirationUpdate": false,
"viewOnce": false
}
}
}
Expected Behavior
The dataMessage should contain a reaction object, similar to how the /v1/reactions POST endpoint structures its input:
JSON
"dataMessage": {
"timestamp": 1772140664347,
"message": null,
"reaction": {
"emoji": "👍",
"targetAuthor": "+49987654321",
"targetSentTimestamp": 1772140661000,
"isRemove": false
}
}
Context
Are you using the latest released version?
Have you read the troubleshooting page?
What type of installation are you running?
signal-cli-rest-api Docker Container
In which mode are you using the docker container?
Normal Mode
What's the architecture of your host system?
x86-64
Additional information
No response