Any number of things could go wrong. Here are a few:
- TX/RX strand reversal
- incompatible signalling (for instance, one end with 100Base-FX and the other end with 1000Base-SX transceiver type)
- mismatch of fiber type along the path (for instance a multimide patch cable in an otherwise all single mode path).
You can get good light levels but not get a link to establish (Layer 2 technically) if any of the above are the case.
Link up / protocol up requires more than just good light levels. Depending on the link type and length, other more esoteric reasons can also come to bear (chromatic dispersion etc.).