Skip to content

Incomplete JSON serialization for incoming Reactions (message: null, missing reaction object) #796

Description

@sandman12345678

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?

  • Yes

Have you read the troubleshooting page?

  • Yes

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions