Probably something obvious but I'd been tearing my hair out. I have Mikrotik routers on towers connected via bridged radios.
To reduce broadcast traffic I have OSPF running with NBMA.
If a router boots up, everything was fine and working. However, if the link drops for whatever reason and OSPF goes down, it wouldn't re-establish. Manually restarting OSPF (or disabling and re-enabling that particular NBMA neighbor) would re-establish OSPF adjacency.
Turns out I'd set priority to 0 instead of 1 which I didn't think would matter as it wasn't a broadcast network.
https://wiki.mikrotik.com/wiki/Manual:Routing/OSPF