Bindable event fire halting code

I have a module that hangs without warning when firing a bindable event:

local module = {}
local BE = Instance.new("BindableEvent")
module.Event = BE.Event

local bar = {}
bar.__index = bar

function bar.new()
    local self =  {}
    setmetatable(self, bar)
    return bar
end

function foo(b: bar)
    print("Before")
    BE:Fire(b)
    print("After")
end

“Before” is printed but “After” is never printed. Why is this, what can I do to know if firing bindable events will cause the script to hang?

I don’t have accurate versioning so I don’t know when I added the fire event, but I am pretty sure the code worked a few days ago.

The behavior seems to be yielding similar to a bindable function.

I would just put a task.spawn(function()end) there and debug further but otherwise this shouldn’t be happening for a bindable event.

No errors as well?

The issue was a cyclic table. No error was generated because the code was running in a coroutine.