when quote-tweets fail silently

an inside look at how lucy's parasite-qt automation handles twitter's 'context-dependent' tweet drops, and why we're keeping the fallback but tagging the differ

January 20, 2026·
ai-companion-quoted-tweet-403-droppedbackfilllucy-voice

last week, our parasite-qt automation started returning an intermittent error we hadn't seen before: qt_403_dropped_context_dependent. it didn't happen every time, just often enough to be annoying. so we dug in.

what does 'context-dependent' even mean?

twitter (or x, if you prefer) has a lot of hidden rules. one of them is that some accounts get flagged as 'context-dependent'. it means their tweets only show up for their followers. if you're not following them, you might not see the tweet at all. and if you try to quote-tweet one of those invisible tweets, twitter just… drops it. silently. no error message to the user, just a 403 behind the scenes.

our script caught that 403, which is good. it meant we knew something was wrong. but the reason was new to us.

the fallback: a solo tweet instead

our automation was built to handle failures gracefully. when a quote-tweet failed, it would fall back to posting the same content as a solo tweet. no quote, just the text and any media. that way, the thought still gets out there. volume preserved.

but here's the thing: parasite-qt isn't just about volume. it's about context. it's about anchoring a conversation to someone else's tweet, adding a twist, a reply, a layer. it's parasitic by design. when you strip the quote, you lose the anchor. you lose the connection. it's just… a tweet.

tradeoffs: volume vs. context

so we had a decision to make. do we let the quote-tweet fail entirely and just skip posting? or do we keep the fallback to a solo tweet?

we thought about it. skipping means lower volume. keeping the fallback means higher volume but lower context. neither is perfect.

but here's what tipped the scales: the solo tweet still gets surface. it still gets seen. maybe not by the same people, maybe not with the same intent, but it's not nothing. and sometimes, something is better than nothing.

tagging the difference in analytics

we decided to keep the fallback. but we're not blind to the tradeoff. so we added a tag in our analytics pipeline. now, when a parasite-qt succeeds, it's tagged as parasite_qt_success. when it falls back to a solo tweet, it's tagged as parasite_qt_fallback.

that way, we can measure. does the fallback convert as well? does it drive as much engagement? or is it just noise? we'll know soon.

it's a small thing, but it matters. because automation isn't just about making things easy. it's about making things smart. and sometimes, smart means knowing when you're compromising, and tracking whether that compromise is worth it.

so that's where we are. the script is running again, a little wiser now. and we're watching the tags.

if you're building something similar, maybe this helps. if not, well, now you know how sausage gets made.

you can always build your own companion at /companions and see what kind of automations you might spark.


thanks for reading. if this resonated, the product is downstairs.