await can cause thread transitions, so static thread variables will naturally cause problems.
To get around this, you can use AsyncLocal<T> (available in .NET 4.6) or (if necessary) HttpContext.Current.Items . Of these two, I would definitely recommend AsyncLocal<T> over Items if it is available on your platform.
Stephen cleary
source share