Ingredients not transfered to Bring #23
-
I have Mealie running in a Docker container as well is this web service. Mealie behind a Traefik reverse proxy and accessible via a public URL (with Authentik authentication). For testing this setup I access the bring-api service directly at I've added the action in Mealie and when triggering it, the following is logged in Mealie: INFO 2025-03-28T09:49:05 - [10.10.3.243:0] 202 Accepted "POST /api/households/recipe-actions/0a80749d-8812-4903-85c6-324b10181ae3/trigger/ramen-noedels-met-gehakt-en-spinazie-1 HTTP/1.1"
ERROR 2025-03-28T09:49:05 - Exception in ASGI application
ERROR 2025-03-28T09:49:05 - Exception in ASGI application
Traceback (most recent call last):
File "/opt/mealie/lib/python3.12/site-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/urllib3/connectionpool.py", line 386, in _make_request
self._validate_conn(conn)
File "/opt/mealie/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1042, in _validate_conn
conn.connect()
File "/opt/mealie/lib/python3.12/site-packages/urllib3/connection.py", line 414, in connect
self.sock = ssl_wrap_socket(
^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/urllib3/util/ssl_.py", line 453, in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/urllib3/util/ssl_.py", line 495, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/ssl.py", line 455, in wrap_socket
return self.sslsocket_class._create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/ssl.py", line 1041, in _create
self.do_handshake()
File "/usr/local/lib/python3.12/ssl.py", line 1319, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1010)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/mealie/lib/python3.12/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/urllib3/util/retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='10.0.0.3', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1010)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/mealie/lib/python3.12/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__
await self.app(scope, receive, send_wrapper)
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/gzip.py", line 20, in __call__
await responder(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/gzip.py", line 39, in __call__
await self.app(scope, receive, self.send_with_gzip)
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/opt/mealie/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/opt/mealie/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/opt/mealie/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/opt/mealie/lib/python3.12/site-packages/starlette/routing.py", line 74, in app
await response(scope, receive, send)
Traceback (most recent call last):
File "/opt/mealie/lib/python3.12/site-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/urllib3/connectionpool.py", line 386, in _make_request
self._validate_conn(conn)
File "/opt/mealie/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1042, in _validate_conn
conn.connect()
File "/opt/mealie/lib/python3.12/site-packages/urllib3/connection.py", line 414, in connect
self.sock = ssl_wrap_socket(
^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/urllib3/util/ssl_.py", line 453, in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/urllib3/util/ssl_.py", line 495, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/ssl.py", line 455, in wrap_socket
return self.sslsocket_class._create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/starlette/responses.py", line 158, in __call__
await self.background()
File "/opt/mealie/lib/python3.12/site-packages/starlette/background.py", line 41, in __call__
await task()
File "/opt/mealie/lib/python3.12/site-packages/starlette/background.py", line 28, in __call__
await run_in_threadpool(self.func, *self.args, **self.kwargs)
File "/opt/mealie/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool
return await anyio.to_thread.run_sync(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/anyio/to_thread.py", line 33, in run_sync
return await get_asynclib().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 877, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 807, in run
result = context.run(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/sessions.py", line 724, in send
history = [resp for resp in gen]
^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/sessions.py", line 265, in resolve_redirects
resp = self.send(
^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/adapters.py", line 698, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='10.0.0.3', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1010)')))
File "/usr/local/lib/python3.12/ssl.py", line 1041, in _create
self.do_handshake()
File "/usr/local/lib/python3.12/ssl.py", line 1319, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1010)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/mealie/lib/python3.12/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/urllib3/util/retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='10.0.0.3', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1010)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/mealie/lib/python3.12/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__
await self.app(scope, receive, send_wrapper)
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/gzip.py", line 20, in __call__
await responder(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/gzip.py", line 39, in __call__
await self.app(scope, receive, self.send_with_gzip)
File "/opt/mealie/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/opt/mealie/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/opt/mealie/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/opt/mealie/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/opt/mealie/lib/python3.12/site-packages/starlette/routing.py", line 74, in app
await response(scope, receive, send)
File "/opt/mealie/lib/python3.12/site-packages/starlette/responses.py", line 158, in __call__
await self.background()
File "/opt/mealie/lib/python3.12/site-packages/starlette/background.py", line 41, in __call__
await task()
File "/opt/mealie/lib/python3.12/site-packages/starlette/background.py", line 28, in __call__
await run_in_threadpool(self.func, *self.args, **self.kwargs)
File "/opt/mealie/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool
return await anyio.to_thread.run_sync(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/anyio/to_thread.py", line 33, in run_sync
return await get_asynclib().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 877, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 807, in run
result = context.run(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/sessions.py", line 724, in send
history = [resp for resp in gen]
^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/sessions.py", line 265, in resolve_redirects
resp = self.send(
^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mealie/lib/python3.12/site-packages/requests/adapters.py", line 698, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='10.0.0.3', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1010)')))" In the bring-api service nothing is logged at that time. I have enabled debug logging and the startup log is: [2025-03-28 06:51:13,438] [BringHandler] [INFO] Attempting the login into Bring
[2025-03-28 06:51:13,922] [bring_api.bring] [DEBUG] Response from https://api.getbring.com/rest/v2/bringauth [200]:
[2025-03-28 06:51:14,015] [bring_api.bring] [DEBUG] Response from https://api.getbring.com/rest/v2/bringusers/**** [200]: {"userUuid":"b0dd881b-c173-485e-8388-3abd6f992561","publicUserUuid":"****","email":"****","emailVerified":true,"name":"****","photoPath":"bring/user/portrait/f7c5e403-06c0-4d99-a3dd-7e58b6327cfe","userLocale":{"language":"en","country":"US"},"premiumConfiguration":{"hasPremium":false,"hideSponsoredProducts":false,"hideSponsoredTemplates":false,"hideSponsoredPosts":false,"hideSponsoredCategories":false,"hideOffersOnMain":false}}
[2025-03-28 06:51:14,133] [bring_api.bring] [DEBUG] Response from https://api.getbring.com/rest/bringusersettings/**** [200]: {"usersettings":[{"key":"onboardClient","value":"android"},{"key":"badgeMode","value":"4d257203-d241-46d4-ae7d-71f20a8ce992"},{"key":"defaultListUUID","value":"4d257203-d241-46d4-ae7d-71f20a8ce992"},{"key":"autoPush","value":"ON"},{"key":"experiment-onboarding-group-configuration","value":"onboarding-group-C"}],"userlistsettings":[{"listUuid":"4d257203-d241-46d4-ae7d-71f20a8ce992","usersettings":[{"key":"listArticleLanguage","value":"nl-NL"},{"key":"listSectionOrder","value":"[\"Früchte & Gemüse\",\"Brot & Gebäck\",\"Milch & Käse\",\"Fleisch & Fisch\",\"Zutaten & Gewürze\",\"Fertig- & Tiefkühlprodukte\",\"Getreideprodukte\",\"Snacks & Süsswaren\",\"Getränke & Tabak\",\"Haushalt & Gesundheit\",\"Tierbedarf\",\"Baumarkt & Garten\",\"Eigene Artikel\"]"}]},{"listUuid":"36b616f6-0e4c-4d58-b7fa-0c605a11f386","usersettings":[{"key":"listSectionOrder","value":"[\"Früchte & Gemüse\",\"Brot & Gebäck\",\"Milch & Käse\",\"Fleisch & Fisch\",\"Zutaten & Gewürze\",\"Fertig- & Tiefkühlprodukte\",\"Getreideprodukte\",\"Snacks & Süsswaren\",\"Getränke & Tabak\",\"Haushalt & Gesundheit\",\"Pflege & Gesundheit\",\"Tierbedarf\",\"Baumarkt & Garten\",\"Eigene Artikel\"]"},{"key":"listArticleLanguage","value":"en-US"}]}]}
[2025-03-28 06:51:14,134] [BringHandler] [INFO] Login successful
[2025-03-28 06:51:14,233] [bring_api.bring] [DEBUG] Response from https://api.getbring.com/rest/bringusers/****/lists [200]: {"lists":[{"listUuid":"4d257203-d241-46d4-ae7d-71f20a8ce992","name":"Grocery Store","theme":"ch.publisheria.bring.theme.grocery"},{"listUuid":"36b616f6-0e4c-4d58-b7fa-0c605a11f386","name":"Boodschappen","theme":"ch.publisheria.bring.theme.home"}]}
[2025-03-28 06:51:14,233] [BringHandler] [INFO] Found the list with the name "Boodschappen" (UUID: 36b616f6-0e4c-4d58-b7fa-0c605a11f386)
[2025-03-28 06:51:14,233] [Main] [INFO] Ignoring ingredients ['Peper', 'Zout', 'Water', 'Olie', 'Olijfolie']
[2025-03-28 06:51:14,234] [Main] [INFO] Listening on 0.0.0.0:8742
* Serving Flask app 'main'
* Debug mode: off (Side note: Bring is a bit confused about languages...) The bring-api URL is accessible from my local device where I access Mealie (checked with Where did I go wrong? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Are you sure For my bring api I use a cert by Lets Encrypt (which is trusted by the bring api by default). I never tried using the application using a self signed cert. |
Beta Was this translation helpful? Give feedback.
-
Yes, Come to think of it, the error about HTTPS certificate could be caused by a 302 from another service on that IP address from :80 to :443. |
Beta Was this translation helpful? Give feedback.
Yes,
http://10.0.0.3:12001
is correct as I verified withcurl http://10.0.0.3:12001/status
which returned 'OK'.But.... still it is a user error (me) because I now realise I didn't add the port number to the POST action in Mealie. Works like a charm now.
Thanks for your support and quick response!
Come to think of it, the error about HTTPS certificate could be caused by a 302 from another service on that IP address from :80 to :443.