[OH3] Homie MQTT thing COMMUNICATION_ERROR

I have LOTS of MQTT things - generic, homie, and even espmilighthub. On one particular Homie device, it goes ONLINE for 5 seconds when I add it from the inbox (so discovery works), then it goes to COMMUNICATION_ERROR “Did not receive all required topics”. AFAICT from the code, this error comes from the Generic MQTT thing handler that Homie inherits from, and is complaining that it didn’t get a value for its availability topic (i.e. $state for Homie). The turning on debug logging for all MQTT stuff in openhab doesn’t reveal anything - just About to initialize Homie device null and then it goes silent. The null doesn’t seem to be concerning, since I seem to get that for all of my Homie devices. Enable debug logging on my Mosquitto server, I can definitely see that the $state topic is subscribed to, and a 5 byte value (“ready” - I can see it with MQTT Explorer) is published to OpenHAB. Along with most of the other node and property topics. There are a lot (6 nodes, 10 properties each) so I didn’t verify every single one was published, but it stops subscribing and publishing them after about 6 seconds. It feels like there’s some sort of timeout of 5s for all the topics to be received for the thing, but I’m not sure. This device has a total of 286 topics in its tree, whereas another device that works fine has 426 topics. Any ideas?

I’m running OpenHAB 3.1.0 S2274 (for an espmilighthub fix).