This is an odd pattern.  Why wait until the callback fires to warn that it was missing.  Why not throw if it's missing?