Summary
twitter tweet <id> --json can return a successful-looking payload with data: [] for real, public tweet IDs, which makes downstream tools think the read succeeded even though the focal tweet is missing.
Repro examples
These were observed on real public tweets today:
twitter tweet 2045507749421670723 --json
twitter tweet 1913215152430450707 --json
twitter tweet 1912668328745068863 --json
In our environment, the command returns JSON successfully, but the payload contains no focal tweet data (effectively empty thread data).
Expected
Either:
- the focal tweet is included in the parsed payload, or
- the command returns a clear non-zero error indicating TweetDetail parsing failed / returned incomplete data.
Actual
The command appears successful, but returns an empty/incomplete payload, so downstream readers can misinterpret it as a valid tweet read.
Suspected area
From local inspection, this looks related to TweetDetail GraphQL parsing and timeline-entry extraction for current conversation module / injection shapes.
Why this matters
A wrapper that trusts stdout success can show reply fragments or empty output as if it were a valid single-tweet read. We have now added a fail-safe on our side, but it would be much better if upstream exposed this as an explicit parsing failure.
Summary
twitter tweet <id> --jsoncan return a successful-looking payload withdata: []for real, public tweet IDs, which makes downstream tools think the read succeeded even though the focal tweet is missing.Repro examples
These were observed on real public tweets today:
twitter tweet 2045507749421670723 --jsontwitter tweet 1913215152430450707 --jsontwitter tweet 1912668328745068863 --jsonIn our environment, the command returns JSON successfully, but the payload contains no focal tweet data (effectively empty thread data).
Expected
Either:
Actual
The command appears successful, but returns an empty/incomplete payload, so downstream readers can misinterpret it as a valid tweet read.
Suspected area
From local inspection, this looks related to TweetDetail GraphQL parsing and timeline-entry extraction for current conversation module / injection shapes.
Why this matters
A wrapper that trusts stdout success can show reply fragments or empty output as if it were a valid single-tweet read. We have now added a fail-safe on our side, but it would be much better if upstream exposed this as an explicit parsing failure.