-
Notifications
You must be signed in to change notification settings - Fork 213
Description
Intermittent "Failed to parse stream data" errors occur when using the Twitter API v2 Filtered Stream with node-twitter-api-v2. The library raises ETwitterStreamEvent.DataError events with the message when it encounters malformed/unparseable data from the Twitter API. This affects data reliability, even though my application handles the errors gracefully.
To Reproduce
Client Setup
Using official node-twitter-api-v2 (npm)
Authentication method: Twitter OAuth 2.0
Scopes: read access for filtered stream
Endpoint or Code Example
Endpoint: /2/tweets/search/stream
Fields: tweet.fields, user.fields, media.fields, place.fields, expansions
Example code:
js
const {TwitterApi} = require('twitter-api-v2');
const client = new TwitterApi(process.env.TWITTER_BEARER_TOKEN);
const stream = await client.v2.searchStream({
'tweet.fields': ['id','text','author_id'],
'expansions': ['author_id']
});
stream.autoReconnect = true;
stream.on(ETwitterStreamEvent.DataError, err => {
console.error('DataError:', err);
});
Error Stack Trace / Error Content
Stack trace example:
text
DataError: Failed to parse stream data
at V2Stream._transformData (/node_modules/twitter-api-v2/dist/v2-stream-client.js:XXX)
...
json
{
"name": "DataError",
"message": "Failed to parse stream data",
"data": "Failed to parse stream data"
}
The error seems to originate from the library's stream parser, not application code.
Expected behavior
The stream should consistently deliver well-formed JSON tweet objects, allowing the library to parse all incoming data without triggering DataError events.
Version
Node.js version: v18.20.8
node-twitter-api-v2 version: 1.26.0
Additional context
The issue is intermittent, not a complete outage.
Only some data chunks appear malformed or unparseable.
Application is robust to these errors (logs and skips invalid data), but missing data impacts completeness.
Error handling and retry logic are in place.
Authenticate and setup confirmed working.
Not related to authentication or rate limits.