---------------------------------------------------------------------------
ServerError Traceback (most recent call last)
Input In [2], in <cell line: 1>()
----> 1 coiled.create_software_environment(
2 name="odc",
3 conda="environment.yml",
4 )
File ~/.conda/envs/odc/lib/python3.9/site-packages/coiled/core.py:2919, in create_software_environment(name, account, conda, pip, container, log_output, post_build, conda_env_name, backend_options, private, force_rebuild, environ)
2878 """Create a software environment
2879
2880 Parameters
(...)
2916 Dictionary of environment variables.
2917 """
2918 with Cloud() as cloud:
-> 2919 return cloud.create_software_environment(
2920 name=name,
2921 account=account,
2922 conda=conda,
2923 pip=pip,
2924 container=container,
2925 post_build=post_build,
2926 log_output=log_output,
2927 conda_env_name=conda_env_name,
2928 backend_options=backend_options,
2929 private=private,
2930 force_rebuild=force_rebuild,
2931 environ=environ,
2932 )
File ~/.conda/envs/odc/lib/python3.9/site-packages/coiled/core.py:1227, in Cloud.create_software_environment(self, name, account, conda, pip, container, post_build, conda_env_name, backend_options, log_output, private, force_rebuild, environ)
1211 def create_software_environment(
1212 self,
1213 name: str = None,
(...)
1225 environ: Optional[Dict] = None,
1226 ) -> Optional[Awaitable[None]]:
-> 1227 return self._sync(
1228 self._create_software_environment,
1229 name=name,
1230 account=account,
1231 conda=conda,
1232 pip=pip,
1233 container=container,
1234 post_build=post_build,
1235 log_output=log_output,
1236 conda_env_name=conda_env_name,
1237 backend_options=backend_options,
1238 private=private,
1239 force_rebuild=force_rebuild,
1240 environ=environ,
1241 )
File ~/.conda/envs/odc/lib/python3.9/site-packages/coiled/core.py:529, in Cloud._sync(self, func, asynchronous, callback_timeout, *args, **kwargs)
527 return future
528 else:
--> 529 return sync(
530 self.loop, func, *args, callback_timeout=callback_timeout, **kwargs
531 )
File ~/.conda/envs/odc/lib/python3.9/site-packages/distributed/utils.py:364, in sync(loop, func, callback_timeout, *args, **kwargs)
362 if error[0]:
363 typ, exc, tb = error[0]
--> 364 raise exc.with_traceback(tb)
365 else:
366 return result[0]
File ~/.conda/envs/odc/lib/python3.9/site-packages/distributed/utils.py:349, in sync.<locals>.f()
347 if callback_timeout is not None:
348 future = asyncio.wait_for(future, callback_timeout)
--> 349 result[0] = yield future
350 except Exception:
351 error[0] = sys.exc_info()
File ~/.conda/envs/odc/lib/python3.9/site-packages/tornado/gen.py:762, in Runner.run(self)
759 exc_info = None
761 try:
--> 762 value = future.result()
763 except Exception:
764 exc_info = sys.exc_info()
File ~/.conda/envs/odc/lib/python3.9/site-packages/coiled/context.py:77, in track_context.<locals>.wrapper(*args, **kwargs)
75 else:
76 with operation_context(name=f"{func.__module__}.{func.__qualname__}"):
---> 77 return await func(*args, **kwargs)
File ~/.conda/envs/odc/lib/python3.9/site-packages/coiled/core.py:1376, in Cloud._create_software_environment(self, name, account, conda, pip, container, post_build, conda_env_name, log_output, backend_options, private, force_rebuild, environ)
1374 await ws.connect()
1375 await ws.send_json(data)
-> 1376 await ws.stream_messages()
File ~/.conda/envs/odc/lib/python3.9/site-packages/coiled/websockets.py:205, in WebsocketConnector.stream_messages(self)
204 async def stream_messages(self):
--> 205 await asyncio.gather(
206 _exhaust_async_iterator(self),
207 _exhaust_async_iterator(self.notification_connector),
208 )
File ~/.conda/envs/odc/lib/python3.9/site-packages/coiled/websockets.py:21, in _exhaust_async_iterator(stream)
20 async def _exhaust_async_iterator(stream):
---> 21 async for _ in stream:
22 pass
File ~/.conda/envs/odc/lib/python3.9/site-packages/coiled/websockets.py:91, in WebsocketConnectorBase.__anext__(self)
84 await self.on_error(message)
85 elif message.type in (WSMsgType.CLOSE, WSMsgType.CLOSED, WSMsgType.CLOSING):
86 # From what I could tell, whenever we get any one of
87 # these, the ClientWebsocketResponse already has a close_code
88 # and an exception (when there is one), so we should be able to
89 # handle the close on any one of these message types, but I may
90 # end up being wrong
---> 91 await self.on_close(message)
92 raise StopAsyncIteration
File ~/.conda/envs/odc/lib/python3.9/site-packages/coiled/websockets.py:196, in WebsocketConnector.on_close(self, message)
194 if ws_exception:
195 print(f"Websocket exception: {ws_exception}", file=self.log_output)
--> 196 raise ServerError(error_messages[-1])
197 elif ws_exception or is_bad_close_code:
198 ws_error_message = f"Error with connection to server: code {close_code}"
ServerError: Traceback (most recent call last):
File "/usr/src/app/cloud/consumers/common.py", line 424, in websocket_error_context
yield
File "/usr/src/app/cloud/consumers/common.py", line 184, in receive
return await self.receive_json(data, **kwargs)
File "/usr/src/app/cloud/consumers/common.py", line 339, in receive_json
return await handler(content)
File "/usr/src/app/cloud/consumers/common.py", line 362, in wrapper
return await f(self, *args, **kwargs)
File "/usr/src/app/cloud/consumers/software_environments.py", line 129, in handle_build
await create_software_environment(
File "<string>", line 21, in func_wrapper
File "/usr/src/app/software_environments/core.py", line 150, in create_software_environment
build_location, read_creds, write_creds = await registry.prepare_build(
File "/usr/src/app/software_environments/registry.py", line 259, in prepare_build
repo_description = await aws.create_repository(
File "/usr/src/app/software_environments/aws.py", line 176, in create_repository
raise error
File "/usr/src/app/software_environments/aws.py", line 169, in create_repository
res = await ecr.create_repository(**kwargs)
File "/opt/conda/lib/python3.8/site-packages/ddtrace/contrib/aiobotocore/patch.py", line 110, in _wrapped_api_call
result = await original_func(*args, **kwargs)
File "/opt/conda/lib/python3.8/site-packages/backoff/_async.py", line 133, in retry
ret = await target(*args, **kwargs)
File "/usr/src/app/backends/__init__.py", line 15, in _wrapper
return await original_func(*args, **kwargs)
File "/opt/conda/lib/python3.8/site-packages/aiobotocore/client.py", line 154, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessDeniedException) when calling the CreateRepository operation: User: arn:aws:iam::097532040392:user/rsignell is not authorized to perform: ecr:CreateRepository on resource: arn:aws:ecr:us-west-2:097532040392:repository/prod/rsignell-odc with an explicit deny in a service control policy