Upgraded to Bookworm, now 403 Forbidden

As is my habit, I let the intrusive thoughts take over and went ahead with upgrading when my setup (DietPi on an rPi4) suggested to upgrade from Bullseye to Bookworm. Now all I get is 403 Forbidden on the web site.

While I am prepared to reinstall from scratch, might there be someone who has gone down this path and managed to restore functionality?

You can restore the backup that was made prior to the upgrade:

Oh, I misunderstood what you upgraded. Yeah, it’s not advised to upgrade major OS versions like that.

You can try deleting /opt/Mycodo/env, then run sudo /opt/Mycodo/mycodo/scripts/upgrade_post.sh, then restart.

That did most the trick, thank you. Some dependencies were missing. paho-mqtt is back up but inputs that use it aren’t saving data. The Web log is filling up with:

Aug 19 20:46:09 grow python[4671]: influxdb_client.rest.ApiException: (401)
Aug 19 20:46:09 grow python[4671]: Reason: Unauthorized
Aug 19 20:46:09 grow python[4671]: HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json; charset=utf-8', 'X-Influxdb-Build': 'OSS', 'X-Influxdb-Version': 'v2.7.8', 'X-Platform-Error-Code': 'unauthorized', 'Date': 'Wed, 20 Aug 2025 03:46:09 GMT', 'Content-Length': '55'})
Aug 19 20:46:09 grow python[4671]: HTTP response body: b'{"code":"unauthorized","message":"unauthorized access"}'
Aug 19 20:46:10 grow python[4671]: 2025-08-19 20:46:10,620 URL for 'last_data' raised and error: (401)
Aug 19 20:46:10 grow python[4671]: Reason: Unauthorized
Aug 19 20:46:10 grow python[4671]: HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json; charset=utf-8', 'X-Influxdb-Build': 'OSS', 'X-Influxdb-Version': 'v2.7.8', 'X-Platform-Error-Code': 'unauthorized', 'Date': 'Wed, 20 Aug 2025 03:46:10 GMT', 'Content-Length': '55'})
Aug 19 20:46:10 grow python[4671]: HTTP response body: b'{"code":"unauthorized","message":"unauthorized access"}'
Aug 19 20:46:10 grow python[4671]: Traceback (most recent call last):
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo.bullseye/mycodo/mycodo_flask/routes_general.py", line 337, in last_data
Aug 19 20:46:10 grow python[4671]:     data = query_string(
Aug 19 20:46:10 grow python[4671]:            ^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo.bullseye/mycodo/utils/influx.py", line 301, in query_string
Aug 19 20:46:10 grow python[4671]:     ret_value = query_flux(
Aug 19 20:46:10 grow python[4671]:                 ^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo.bullseye/mycodo/utils/influx.py", line 286, in query_flux
Aug 19 20:46:10 grow python[4671]:     tables = client.query_api().query(query)
Aug 19 20:46:10 grow python[4671]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/client/query_api.py", line 203, in query
Aug 19 20:46:10 grow python[4671]:     response = self._query_api.post_query(org=org, query=self._create_query(query, self.default_dialect, params),
Aug 19 20:46:10 grow python[4671]:                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/service/query_service.py", line 285, in post_query
Aug 19 20:46:10 grow python[4671]:     (data) = self.post_query_with_http_info(**kwargs)  # noqa: E501
Aug 19 20:46:10 grow python[4671]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/service/query_service.py", line 311, in post_query_with_http_info
Aug 19 20:46:10 grow python[4671]:     return self.api_client.call_api(
Aug 19 20:46:10 grow python[4671]:            ^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py", line 343, in call_api
Aug 19 20:46:10 grow python[4671]:     return self.__call_api(resource_path, method,
Aug 19 20:46:10 grow python[4671]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py", line 173, in __call_api
Aug 19 20:46:10 grow python[4671]:     response_data = self.request(
Aug 19 20:46:10 grow python[4671]:                     ^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py", line 388, in request
Aug 19 20:46:10 grow python[4671]:     return self.rest_client.POST(url,
Aug 19 20:46:10 grow python[4671]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/rest.py", line 311, in POST
Aug 19 20:46:10 grow python[4671]:     return self.request("POST", url,
Aug 19 20:46:10 grow python[4671]:            ^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/rest.py", line 261, in request
Aug 19 20:46:10 grow python[4671]:     raise ApiException(http_resp=r)
Aug 19 20:46:10 grow python[4671]: influxdb_client.rest.ApiException: (401)
Aug 19 20:46:10 grow python[4671]: Reason: Unauthorized
Aug 19 20:46:10 grow python[4671]: HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json; charset=utf-8', 'X-Influxdb-Build': 'OSS', 'X-Influxdb-Version': 'v2.7.8', 'X-Platform-Error-Code': 'unauthorized', 'Date': 'Wed, 20 Aug 2025 03:46:10 GMT', 'Content-Length': '55'})
Aug 19 20:46:10 grow python[4671]: HTTP response body: b'{"code":"unauthorized","message":"unauthorized access"}'
Aug 19 20:46:10 grow python[4671]: 2025-08-19 20:46:10,649 URL for 'last_data' raised and error: (401)
Aug 19 20:46:10 grow python[4671]: Reason: Unauthorized
Aug 19 20:46:10 grow python[4671]: HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json; charset=utf-8', 'X-Influxdb-Build': 'OSS', 'X-Influxdb-Version': 'v2.7.8', 'X-Platform-Error-Code': 'unauthorized', 'Date': 'Wed, 20 Aug 2025 03:46:10 GMT', 'Content-Length': '55'})
Aug 19 20:46:10 grow python[4671]: HTTP response body: b'{"code":"unauthorized","message":"unauthorized access"}'
Aug 19 20:46:10 grow python[4671]: Traceback (most recent call last):
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo.bullseye/mycodo/mycodo_flask/routes_general.py", line 337, in last_data
Aug 19 20:46:10 grow python[4671]:     data = query_string(
Aug 19 20:46:10 grow python[4671]:            ^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo.bullseye/mycodo/utils/influx.py", line 301, in query_string
Aug 19 20:46:10 grow python[4671]:     ret_value = query_flux(
Aug 19 20:46:10 grow python[4671]:                 ^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo.bullseye/mycodo/utils/influx.py", line 286, in query_flux
Aug 19 20:46:10 grow python[4671]:     tables = client.query_api().query(query)
Aug 19 20:46:10 grow python[4671]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/client/query_api.py", line 203, in query
Aug 19 20:46:10 grow python[4671]:     response = self._query_api.post_query(org=org, query=self._create_query(query, self.default_dialect, params),
Aug 19 20:46:10 grow python[4671]:                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/service/query_service.py", line 285, in post_query
Aug 19 20:46:10 grow python[4671]:     (data) = self.post_query_with_http_info(**kwargs)  # noqa: E501
Aug 19 20:46:10 grow python[4671]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/service/query_service.py", line 311, in post_query_with_http_info
Aug 19 20:46:10 grow python[4671]:     return self.api_client.call_api(
Aug 19 20:46:10 grow python[4671]:            ^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py", line 343, in call_api
Aug 19 20:46:10 grow python[4671]:     return self.__call_api(resource_path, method,
Aug 19 20:46:10 grow python[4671]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py", line 173, in __call_api
Aug 19 20:46:10 grow python[4671]:     response_data = self.request(
Aug 19 20:46:10 grow python[4671]:                     ^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py", line 388, in request
Aug 19 20:46:10 grow python[4671]:     return self.rest_client.POST(url,
Aug 19 20:46:10 grow python[4671]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/rest.py", line 311, in POST
Aug 19 20:46:10 grow python[4671]:     return self.request("POST", url,
Aug 19 20:46:10 grow python[4671]:            ^^^^^^^^^^^^^^^^^^^^^^^^^
Aug 19 20:46:10 grow python[4671]:   File "/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/rest.py", line 261, in request
Aug 19 20:46:10 grow python[4671]:     raise ApiException(http_resp=r)
Aug 19 20:46:10 grow python[4671]: influxdb_client.rest.ApiException: (401)
Aug 19 20:46:10 grow python[4671]: Reason: Unauthorized
Aug 19 20:46:10 grow python[4671]: HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json; charset=utf-8', 'X-Influxdb-Build': 'OSS', 'X-Influxdb-Version': 'v2.7.8', 'X-Platform-Error-Code': 'unauthorized', 'Date': 'Wed, 20 Aug 2025 03:46:10 GMT', 'Content-Length': '55'})
Aug 19 20:46:10 grow python[4671]: HTTP response body: b'{"code":"unauthorized","message":"unauthorized access"}'

Actually, it looks like the data is getting saved, just not accessed from a dashboard:
2025-08-19 20:49:50,239 - DEBUG - mycodo.inputs.mqtt_paho_87b51f75 - Received message: topic: canopy/temperature1, payload: 26.837
2025-08-19 20:49:50,241 - DEBUG - mycodo.inputs.mqtt_paho_87b51f75 - Found channel 0 with topic ‘canopy/temperature1’
2025-08-19 20:49:50,241 - DEBUG - mycodo.inputs.mqtt_paho_87b51f75 - Payload represents a float: 26.837
2025-08-19 20:49:50,286 - DEBUG - mycodo.inputs.mqtt_paho_87b51f75 - Adding measurement to influxdb: {0: {‘measurement’: ‘temperature’, ‘unit’: ‘C’, ‘value’: 26.837, ‘timestamp_utc’: datetime.datetime(2025, 8, 20, 3, 49, 50, 241150)}}

That is merely stating what it is attempting to save to the database, not that it was successful. To see those types of log messages, you need to turn the Daemon Debug Logging on from the configuration and restart the daemon.

Gotcha. Enabled daemon debug and restarted it. Then activated an MQTT input:

025-08-20 18:14:55,972 - DEBUG - mycodo - Input controller with ID 87b51f75-cb66-461a-9fb8-7e0802e976f1 activated.
2025-08-20 18:14:55,974 - INFO - mycodo.controllers.controller_input_87b51f75 - Activated in 217.6 ms
2025-08-20 18:14:55,977 - INFO - mycodo.inputs.mqtt_paho_87b51f75 - Connected to localhost as client_MceRZmlb
2025-08-20 18:14:58,357 - DEBUG - mycodo.influx - Write point fail: (401)
Reason: Unauthorized
HTTP response headers: HTTPHeaderDict({‘Content-Type’: ‘application/json; charset=utf-8’, ‘X-Influxdb-Build’: ‘OSS’, ‘X-Influxdb-Version’: ‘v2.7.8’, ‘X-Platform-Error-Code’: ‘unauthorized’, ‘Date’: ‘Thu, 21 Aug 2025 01:14:58 GMT’, ‘Content-Length’: ‘55’})
HTTP response body: {“code”:“unauthorized”,“message”:“unauthorized access”}
: b’C,channel=0,device_id=87b51f75-cb66-461a-9fb8-7e0802e976f1,measure=temperature value=26.709 1755738897700280000’
2025-08-20 18:15:00,288 - DEBUG - mycodo.influx - Write point fail: (401)
Reason: Unauthorized
HTTP response headers: HTTPHeaderDict({‘Content-Type’: ‘application/json; charset=utf-8’, ‘X-Influxdb-Build’: ‘OSS’, ‘X-Influxdb-Version’: ‘v2.7.8’, ‘X-Platform-Error-Code’: ‘unauthorized’, ‘Date’: ‘Thu, 21 Aug 2025 01:15:00 GMT’, ‘Content-Length’: ‘55’})
HTTP response body: {“code”:“unauthorized”,“message”:“unauthorized access”}
: b’C,channel=0,device_id=87b51f75-cb66-461a-9fb8-7e0802e976f1,measure=temperature value=26.666 1755738900217965000’
2025-08-20 18:15:02,254 - INFO - mycodo.controllers.controller_input_87b51f75 - Deactivated in 480.0 ms
2025-08-20 18:15:02,255 - DEBUG - mycodo - Input controller with ID 87b51f75-cb66-461a-9fb8-7e0802e976f1 deactivated.

So it looks like the update to bookworm installed influxdb 2.7.8, whereas it was previously v1. I saw the setting for influxdb version in Mycodo and changed it to V2 but that didn’t fix it.

Syslog is filling up with these:

2025-08-20T21:04:29.571813-07:00 grow influxd-systemd-start.sh[790]: ts=2025-08-21T04:04:29.571591Z lvl=error msg=“api error encountered” log_id=0yTQCms0000 handler=session error=“unauthorized access”
2025-08-20T21:04:29.576205-07:00 grow python[120043]: 2025-08-20 21:04:29,573 URL for ‘last_data’ raised and error: (401)
2025-08-20T21:04:29.576386-07:00 grow python[120043]: Reason: Unauthorized
2025-08-20T21:04:29.576475-07:00 grow python[120043]: HTTP response headers: HTTPHeaderDict({‘Content-Type’: ‘application/json; charset=utf-8’, ‘X-Influxdb-Build’: ‘OSS’, ‘X-Influxdb-Version’: ‘v2.7.8’, ‘X-Platform-Error-Code’: ‘unauthorized’, ‘Date’: ‘Thu, 21 Aug 2025 04:04:29 GMT’, ‘Content-Length’: ‘62’})
2025-08-20T21:04:29.576545-07:00 grow python[120043]: HTTP response body: {
2025-08-20T21:04:29.576610-07:00 grow python[120043]: #011"code": “unauthorized”,
2025-08-20T21:04:29.576674-07:00 grow python[120043]: #011"message": “unauthorized access”
2025-08-20T21:04:29.576737-07:00 grow python[120043]: }
2025-08-20T21:04:29.576806-07:00 grow python[120043]: Traceback (most recent call last):
2025-08-20T21:04:29.576872-07:00 grow python[120043]: File “/opt/Mycodo.bullseye/mycodo/mycodo_flask/routes_general.py”, line 337, in last_data
2025-08-20T21:04:29.576958-07:00 grow python[120043]: data = query_string(
2025-08-20T21:04:29.577023-07:00 grow python[120043]: ^^^^^^^^^^^^^
2025-08-20T21:04:29.577086-07:00 grow python[120043]: File “/opt/Mycodo.bullseye/mycodo/utils/influx.py”, line 301, in query_string
2025-08-20T21:04:29.577148-07:00 grow python[120043]: ret_value = query_flux(
2025-08-20T21:04:29.577222-07:00 grow python[120043]: ^^^^^^^^^^^
2025-08-20T21:04:29.577285-07:00 grow python[120043]: File “/opt/Mycodo.bullseye/mycodo/utils/influx.py”, line 286, in query_flux
2025-08-20T21:04:29.577349-07:00 grow python[120043]: tables = client.query_api().query(query)
2025-08-20T21:04:29.577411-07:00 grow python[120043]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-20T21:04:29.577479-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/client/query_api.py”, line 203, in query
2025-08-20T21:04:29.577545-07:00 grow python[120043]: response = self._query_api.post_query(org=org, query=self._create_query(query, self.default_dialect, params),
2025-08-20T21:04:29.577610-07:00 grow python[120043]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-20T21:04:29.577675-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/service/query_service.py”, line 285, in post_query
2025-08-20T21:04:29.577772-07:00 grow python[120043]: (data) = self.post_query_with_http_info(**kwargs) # noqa: E501
2025-08-20T21:04:29.577841-07:00 grow python[120043]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-20T21:04:29.577901-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/service/query_service.py”, line 311, in post_query_with_http_info
2025-08-20T21:04:29.577967-07:00 grow python[120043]: return self.api_client.call_api(
2025-08-20T21:04:29.578029-07:00 grow python[120043]: ^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-20T21:04:29.578096-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py”, line 343, in call_api
2025-08-20T21:04:29.578157-07:00 grow python[120043]: return self.__call_api(resource_path, method,
2025-08-20T21:04:29.578221-07:00 grow python[120043]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-20T21:04:29.578285-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py”, line 121, in __call_api
2025-08-20T21:04:29.578402-07:00 grow python[120043]: self._signin(resource_path=resource_path)
2025-08-20T21:04:29.578481-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py”, line 657, in _signin
2025-08-20T21:04:29.578544-07:00 grow python[120043]: http_info = SigninService(self).post_signin_with_http_info()
2025-08-20T21:04:29.578604-07:00 grow python[120043]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-20T21:04:29.578670-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/service/signin_service.py”, line 74, in post_signin_with_http_info
2025-08-20T21:04:29.578754-07:00 grow python[120043]: return self.api_client.call_api(
2025-08-20T21:04:29.578825-07:00 grow python[120043]: ^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-20T21:04:29.578888-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py”, line 343, in call_api
2025-08-20T21:04:29.578948-07:00 grow python[120043]: return self.__call_api(resource_path, method,
2025-08-20T21:04:29.579024-07:00 grow python[120043]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-20T21:04:29.579090-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py”, line 173, in __call_api
2025-08-20T21:04:29.579151-07:00 grow python[120043]: response_data = self.request(
2025-08-20T21:04:29.579214-07:00 grow python[120043]: ^^^^^^^^^^^^^
2025-08-20T21:04:29.579277-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/api_client.py”, line 388, in request
2025-08-20T21:04:29.579340-07:00 grow python[120043]: return self.rest_client.POST(url,
2025-08-20T21:04:29.579399-07:00 grow python[120043]: ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-20T21:04:29.579467-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/rest.py”, line 311, in POST
2025-08-20T21:04:29.579530-07:00 grow python[120043]: return self.request(“POST”, url,
2025-08-20T21:04:29.579591-07:00 grow python[120043]: ^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-20T21:04:29.579648-07:00 grow python[120043]: File “/opt/Mycodo/env/lib/python3.11/site-packages/influxdb_client/_sync/rest.py”, line 261, in request
2025-08-20T21:04:29.579712-07:00 grow python[120043]: raise ApiException(http_resp=r)
2025-08-20T21:04:29.579778-07:00 grow python[120043]: influxdb_client.rest.ApiException: (401)
2025-08-20T21:04:29.579843-07:00 grow python[120043]: Reason: Unauthorized
2025-08-20T21:04:29.579909-07:00 grow python[120043]: HTTP response headers: HTTPHeaderDict({‘Content-Type’: ‘application/json; charset=utf-8’, ‘X-Influxdb-Build’: ‘OSS’, ‘X-Influxdb-Version’: ‘v2.7.8’, ‘X-Platform-Error-Code’: ‘unauthorized’, ‘Date’: ‘Thu, 21 Aug 2025 04:04:29 GMT’, ‘Content-Length’: ‘62’})
2025-08-20T21:04:29.579970-07:00 grow python[120043]: HTTP response body: {
2025-08-20T21:04:29.580035-07:00 grow python[120043]: #011"code": “unauthorized”,
2025-08-20T21:04:29.580096-07:00 grow python[120043]: #011"message": “unauthorized access”
2025-08-20T21:04:29.580157-07:00 grow python[120043]: }

Poking around the install/setup.sh and then following through the influx2 install commands, I ran ‘influx config’ which reveals that the mycodo database is missing. That makes sense since the system went from v1 to v2.
So I ran the command ‘influx setup --org mycodo --bucket mycodo_db --username mycodo --password mmdu77sj3nIoiajjs --force &&’, and now data is being saved. No errors in the syslog, it’s fixed.

Thank you for making Mycodo awesome!

1 Like