Mastodon timeout on bad link in content (or mention?) prevents post from appearing
Bridgy Fed delivered @tantek's https://tantek.com/2024/044/t1/twenty-years-microformats to his followers' inboxes, as normal, but it's not visible anywhere on those instances, either on his profile @[email protected] or in hashtag searches. This hasn't happened with his other posts from https://tantek.com/ ; when BF delivers them, they're visible on his profile and searches. Just that one post is missing.
He tried again with different URLs for the same post, but the same thing happened. I have to guess there's something specific about that post that Mastodon is failing on internally, or suppressing somehow. Odd.
Next step would be to find one of his followers who's not on Mastodon and see if the post is visible on their instance.
@tantek have you seen this recur at all? It's unsatisfying to not know what happened, but if we haven't managed to reproduce it, I may end up closing it.
Ran out of leads to follow here. Tentatively closing, but @tantek feel free to reopen!
Looks like this may have happened again with https://tantek.com/2024/173/t1/years-posse-microformats-adoption . BF delivered it like normal, https://fed.brid.gy/web/tantek.com shows that 309 inboxes received it ok and returned HTTP 2xx, but I can't find it visible anywhere. indieweb.social and mastodon.social show the post before it as the most recent one.
AP id for the Note is https://fed.brid.gy/r/https://tantek.com/2024/173/t1/years-posse-microformats-adoption , which BF happily serves:
curl -vL -H 'Accept: application/activity+json' 'https://fed.brid.gy/r/https://tantek.com/2024/173/t1/years-posse-microformats-adoption'
...but when I search for that id in a few different Mastodon instances, they all complain 503 Remote data could not be fetched. Hrm.
Happening again with a few of the most recent posts on tantek.com, eg https://tantek.com/2024/245/t1/read-write-suggest-edit-web . Inbox delivery responses (eg on indieweb.social and w3c.social) were HTTP 202, as usual. 😕
Useful data point: Mastodon generally isn't showing Tantek's latest post, but @pcarrier (https://rrier.fr/@pc) reports that he sees it on his GotoSocial instance.
@tantek did some great sleuthing and narrowed this down to links to https://kevinmarks.com/ . That site doesn't serve SSL on the apex domain, so fetching that URL hangs and never connects.
Examples:
- Failed: https://tantek.com/2024/247/t2/twenty-years-microformats-shorter
- Worked: https://tantek.com/2024/247/t2/twenty-years-microformats-shorter2
Here's a word-level diff of the parsed mf2:
[[email protected]] {+Kevin Marks+}
[-<a class=\"auto-link\" href=\"https://KevinMarks.com\">@KevinMarks.com</a>-] {+Kevin Marks+}
[-"https://tantek.com/2024/247/t2/twenty-years-microformats-shorter"-]
{+"https://tantek.com/2024/247/t2/twenty-years-microformats-shorter2"+}
[-"https://tantek.com/2024/247/t2/twenty-years-microformats-shorter"-] {+"https://tantek.com/2024/247/t2/twenty-years-microformats-shorter2"+}
...and of the AS2 that BF serves:
[-<a class=\"auto-link\" href=\"https://KevinMarks.com\">@KevinMarks.com</a>-] {+Kevin Marks+}
[-"https://fed.brid.gy/r/https://tantek.com/2024/247/t2/twenty-years-microformats-shorter",-] {+"https://fed.brid.gy/r/https://tantek.com/2024/247/t2/twenty-years-microformats-shorter2",+}
[-"https://fed.brid.gy/r/https://tantek.com/2024/247/t2/twenty-years-microformats-shorter",-] {+"https://fed.brid.gy/r/https://tantek.com/2024/247/t2/twenty-years-microformats-shorter2",+}
[[email protected]] {+Kevin Marks+}
[-},
{
"type": "Mention",
"name": "@KevinMarks.com",
"href": "https://KevinMarks.com"-]
[-"cc": [
"https://KevinMarks.com"
],-]
[-<a class=\"auto-link\" href=\"https://KevinMarks.com\">@KevinMarks.com</a>-] {+Kevin Marks+}
When a fediverse instance fetches BF's AS2 version of one of these posts (via conneg), BF tries to fetch https://kevinmarks.com/ , it waits for 15s, the fetch times out, and then BF serves valid AS2 for the post. I'm guessing many Mastodon servers also time out at 15s or less, so they never get the AS2 post that BF eventually serves.
I'll work on a fix, but in the short term, @tantek you can fix this on your end by linking to either http://kevinmarks.com/ (no https) or https://www.kevinmarks.com/ , since both of those serve ok.
The timeout is one possible root cause here, but not the only one. I see at least three:
- Timeout described above
- The AS2 includes a mention
tagfor the bad link:"tag": [{ "type": "Mention", "name": "@KevinMarks.com", "href": "https://KevinMarks.com" }, "..." - Mastodon tries to generate a link preview from the bad link. Unlikely though; I think it generally uses the first link, and this has happened both when the bad link is first and when it's not.
Could you open an issue in Mastodon's repo if there is something to fix on our side?
Thanks!
Hi @renchap, thanks for checking in! There may be something to fix on your side, but we don't know for sure yet. Our best guess is that the root cause is one of the three possibilities above, https://github.com/snarfed/bridgy-fed/issues/884#issuecomment-2327921384
Not sure if Mastodon's behavior here has changed, but I'm reluctant to do anything on our end to try to detect and with around this. I may close unless anyone has a better idea.
(Re-testing Mastodon would be a good step!)
@tantek have you tried to federate any posts that link to http kevinmarks.com in the last year or so? I suspect this might be fixed on Mastodon's end, but I'm not sure.