ValueError: Resource does not exist: websocket_api_custom_domain - For an already existing api
- Dominant language
- Python
- Stars
- 11.1k
- Forks
- 1k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 2
Description
I have a chalice application with both REST API endpoints and Websockets API.
I have a deployed api, with an `api_gateway_custom_domain` defined and working.
I now wanted to add a new `websocket_api_custom_domain` but I got the following error:
```
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/click/core.py", line 1055, in main
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] rv = self.invoke(ctx)
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/click/core.py", line 1657, in invoke
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] return _process_result(sub_ctx.command.invoke(sub_ctx))
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/click/core.py", line 1404, in invoke
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] return ctx.invoke(self.callback, **ctx.params)
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/click/core.py", line 760, in invoke
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] return __callback(*args, **kwargs)
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/click/decorators.py", line 26, in new_func
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] return f(get_current_context(), *args, **kwargs)
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/chalice/cli/__init__.py", line 190, in deploy
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] deployed_values = d.deploy(config, chalice_stage_name=stage)
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/chalice/deploy/deployer.py", line 376, in deploy
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] return self._deploy(config, chalice_stage_name)
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/chalice/deploy/deployer.py", line 390, in _deploy
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] plan = self._plan_stage.execute(resources)
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/chalice/deploy/planner.py", line 210, in execute
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] result = handler(resource)
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/chalice/deploy/planner.py", line 1215, in _plan_websocketapi
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] custom_domain_plan = self._add_custom_domain_plan(
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/chalice/deploy/planner.py", line 1363, in _add_custom_domain_plan
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] api_mapping_plan = self._add_apimapping_plan(
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/chalice/deploy/planner.py", line 282, in _add_apimapping_plan
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] deployed = self._remote_state.resource_deployed_values(
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/chalice/deploy/planner.py", line 44, in resource_deployed_values
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] return self._dynamically_lookup_values(resource)
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] File "/root/work/fa73fdace82fee7d/glchatbot/.venv/lib/python3.12/site-packages/chalice/deploy/planner.py", line 56, in _dynamically_lookup_values
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] raise ValueError("Deployed values for resource does not exist: %s"
[23:23:07] : [Step 3/7]
[23:23:07] : [Step 3/7] ValueError: Deployed values for resource does not exist: websocket_api_custom_domain
```
Leading me to suspect there is a bug, not allowing for the creation of such mapping once an api is already deployed.
I will verify this by removing the api and deplying a clean app.
Contributor guide
Research direction
Start in chalice/deploy/planner.py, especially _plan_websocketapi, _add_custom_domain_plan, and _add_apimapping_plan, then reproduce deployment with an existing REST API before adding websocket_api_custom_domain. Done means the deployment creates the websocket custom-domain mapping without the missing deployed-values error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, python
- Domain
- api, cloud
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100