I'm experiencing the same issue on some of the clients' files, on both Revit 2025.4 and Revit 2026.
Here's a short Revit Python Shell example to trigger the issue.
import clr
clr.AddReference("RevitAPI")
clr.AddReference("RevitAPIUI")
from Autodesk.Revit.DB import * # noqa: F403
uidoc = __revit__.ActiveUIDocument # type: ignore # noqa: F821
doc = uidoc.Document
view = doc.ActiveView
# Pick first link instance (if any)
link_instances = list(FilteredElementCollector(doc).OfClass(RevitLinkInstance).ToElements())
link_inst = link_instances[0] if link_instances else None
link_doc = link_inst.GetLinkDocument() if link_inst else None
link_elems = (
FilteredElementCollector(doc, view.Id, link_inst.Id).ToElements()
)
Unfortunately, it happens only on specific revit files (that are usually tied to Central or some other cloud storage), and I can't yet share a revit file to reproduce that.
I can share some information from Visual Studio catching the crash. I've attached to the Revit process. Here's what I get when Revit crashes:


I've tried all of the hacks suggested in this thread (call Dispose, avoid calling ToElements/ToElementIds, temporary 2-arg FilteredElementCollector) – it still crashes.
If I use FilteredElementCollector(host_doc, host_view.Id, link.Id) togeher with OfCategory or OfCategoryId, it produces an slightly different stack trace on crash:

{The input argument "categoryId" of function Autodesk::Revit::Proxy::DB::FilteredElementCollectorProxy::OfCategoryId or one item in the collection is null at line 524 of file F:\Ship26.2\2026_px64\Source\Revit\RevitDBAPI\gensrc\APIFilteredElementCollectorProxy.cpp.}
However, categoryId isn't null in that case, as can be clearly seen on the MSVS screenshot.
Most likely, there's some heisenbug inside the new FilteredElementCollector(host_doc, host_view.Id, link.Id).
Dear Autodesk, please look into this issue as there's not much workarounds here. Replicating the behaviour of 3-arg FilteredElementCollector is rather hard and very error-prone.
Thank you!