Bluesky threads reject cleared mentions as unsupported setting #475
Description
Before anything else, openpost is such an amazing tool, thank you so much for your work, I am in love with the tool ^^
Description
Scheduling a Bluesky thread fails validation with mentions is not supported for Bluesky thread even after removing every written mention from the composer. Clearing the @ text is not enough: the Bluesky segment still keeps authored mention metadata (mentions: { version: 1, spans: [] }), and capability validation treats that object as an unsupported provider setting.
Steps to Reproduce
- Go to a publication composer and create a thread with X and Bluesky destinations.
- Insert a native Bluesky mention on one thread segment (or open an existing thread that already had one).
- Remove the mention from the text so no
@remains on Bluesky. - Save / validate / schedule the publication.
- See validation error:
mentions is not supported for Bluesky thread.
Expected Behavior
Validation succeeds when there are no selected mentions. An explicit empty mentions object ({"version":1,"spans":[]}) should mean “no mentions”, not an unsupported Bluesky setting. Mentions should be validated by the dedicated mention path, not rejected as an unknown provider setting.
Actual Behavior
POST /api/v1/publications/{id}/validate returns unsupported_setting for field mentions on bluesky.thread. In the Network tab, the Bluesky segment still sends "mentions":{"version":1,"spans":[]} in settings after the visible mention text was cleared.
Screenshots
N/A (visible in Network + validation error in the composer).
Environment
- OpenPost version: 7.30.4
- Deployment method (binary/Docker/other): Docker
- Operating system: Linux
- Go version (if building from source): N/A
- Browser (if web UI issue): Firefox
Logs
mentions is not supported for Bluesky thread
Example Bluesky segment settings still present after clearing written mentions:
"settings": {
"thread_gate": "everyone",
"mentions": { "version": 1, "spans": [] }
}Additional Context
Authored mentions are owned by posttext, not the Bluesky provider settings catalog (thread_gate, reply_gate, etc.). Empty spans still serialize as a non-empty object, so the unsupported-settings gate rejects them.
Proposed fix:
Affected Platforms
- X (Twitter)
- Mastodon
- Bluesky
- Threads
(X side still works; the failure is reported on the Bluesky thread destination.)
Checklist
- I have searched for similar issues
- I have included all information requested above
- This is not a security vulnerability (if so, please email openpost+security@rgo.pt)
Activity
[-]bug:[/-][+]Bluesky threads reject cleared mentions as unsupported setting[/+]test(mentions): cover provider validation boundaries (getopenpost#475)
fix(capabilities): accept authored mentions outside provider settings (…
aramirezj commentedon Oct 26, 2026
ty @rodrgds !
rodrgds commentedon Oct 26, 2026
No, thank YOU!! 🫡🙂