# Multiple asyncio runs cause SSLWantReadError
Multiple asyncio.run() calls (or Django running each request in a new thread with a new event loop, including the debug server) fail with SSLWantReadError / 'Event loop is closed' because the SDK builds its shared httpx client at import time, bound to the first event loop. Workaround from the #366 research: do not let GraphServiceClient build its default adapter. Construct a fresh request adapter inside your async code each time: `GraphRequestAdapter(auth_provider=AzureIdentityAuthenticationProvider(credentials=creds, scopes=scopes), client=GraphClientFactory.create_with_default_middleware(options=options, client=KiotaClientFactory.get_default_client()))`, pass it as `GraphServiceClient(request_adapter=...)`, and create the client inside each asyncio.run call so every run gets its own event loop. Running multiple asyncio.run is still an anti-pattern, so avoid it if you can.
## Context from the issue
gh:microsoftgraph/msgraph-sdk-python#82: Issue microsoftgraph/msgraph-sdk-python#82 (closed, 11 comments): Hi, I would like to use the Microsoft graph SDK for Python with Django DB transaction. As Django DB transaction `with transaction.atomic()` must be in sync context, I must use multiple `asyncio.run` calls. > The question is how can we mix async graph requests and sync calls with multiple async calls? The first `asyncio.run` works correctly, I am able to retrieve two `MailFolder` with their ID and messages in one of these folders. ```python mailfolders = await asyncio.gather( self._retrieve_mailfolder_source(), self._retrieve_mailfolder_backup(), return_exceptions=False ) # Same async event loo