The documentation (here) specifically states:
If the initialization fails, the Thing goes back to UNINITIALIZED.
How does/can the “initialization fail”? The initialize() function is void, and it does not appear that setting one of (UNKNOWN|ONLINE|OFFLINE) status is considered a “failure”. So are the failure conditions strictly internal to openHAB, like a timeout/internal error, or can/should the binding signal an initialize() failure in some way? I may have missed something and that’s why the documentation seems ambiguous to me.