In addition to this assertion, I think we should add a `try: ... except AssertionError: ...` here: https://github.com/gem/oq-hazardlib/blob/master/openquake/hazardlib/source/complex_fault.py#L112

At this line, we can catch the error and re-throw the exception with the source name and id included with the message. This way, the user can quickly identify which source (out of potentially thousands of sources) is causing the issue.

Make sense?