This is wild. The symptom you'd get is this: The *first* time ``fedmsg.publish(topic=topic, msg=dict(...))`` is ever called, fedmsg isn't initialized yet. Those topic and msg arguments are passed through to ``init(**kw)`` as extra keyword arguments and so "topic" and "msg" appear in the global config dict (internally). This never mattered in practice. They were there, and noone cared. I'm hitting it now because in fmn, we try to call ``fedmsg.meta.msg2link(msg=msg, **config)`` but there is a ``msg`` key in config from the first time ``publish`` was called and so it fails with "cannot have two keyword arguments named 'msg'".
This should fix the bug reported here: https://bugzilla.redhat.com/show_bug.cgi?id=1189082 If there's a network error and the CRL is not reachable, currently fedmsg just quietly returns the local path where the CRL should be, even though it hasn't been downloaded. This should surface that exception to the user of the library.
This is ultimately for fedora-infra/fmn#47.