I was able to solve this by including HttpContext.Current
into the Elmah Error.
var elmahId = ErrorLog.GetDefault(HttpContext.Current).Log(new Error(exception, HttpContext.Current));
I still wonder why the ErrorLog.GetDefault
requires a HttpContext
as it doesn't seem to do anything with it.