Kotlin 非同期 スレッドローカルの値参照

非同期処理を実装したところ、 IllegalStateException がスローされて対応に四苦八苦したのでそのメモ
KotlinSpring Boot

IllegalStateException の全文
No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
DeepLで翻訳かけた結果
スレッドバインドされたリクエストは見つかりませんでした。実際のWebリクエストの外でのリクエスト属性を指しているのでしょうか、それとももともと受信していたスレッドの外でリクエストを処理しているのでしょうか?もし、実際にWebリクエスト内で操作しているにも関わらず、このメッセージが表示される場合は、あなたのコードがDispatcherServletの外部で実行されている可能性があります。この場合、RequestContextListenerやRequestContextFilterを使って、現在のリクエストを公開してください。
エラーをスローした処理を特定してみた
RequestContextHolder の currentRequestAttributes で呼ばれていることが判明