https://changedetection.io/check-ver.php always returns "new_version"
Closed this issue · 4 comments
Describe the bug
My instance has the current version installed and still displays the "A new version is available" text in the header. I have checked the code and figured out that https://changedetection.io/check-ver.php is used to check if a new version is available. When I tried to POST call the endpoint with {"version": "0.47.06", "app_guid": "68620238-7db4-4408-bc78-a803312a29ef", "watch_count": 0}
(random guid), it still returned 200 OK
with new_version
. Using a higher minor or path version also resulted in the same outcome, which leads me to believe that the endpoint currently does not work correctly.
Version
v0.47.06
How did you install?
Docker Compose
To Reproduce
Either:
- Install the newest release with
image: ghcr.io/dgtlmoon/changedetection.io
indocker-compose.yml
and witness the "A new version is available" message - Make a post call with
{"version": "0.47.06", "app_guid": "68620238-7db4-4408-bc78-a803312a29ef", "watch_count": 0}
to https://changedetection.io/check-ver.php and witness thenew_version
response
Expected behavior
Don't have the "A new version is available" text on the newest version and a different response on the version check endpoint with the current version.
Screenshots
Message in the header:
Additional context
I never had this issue before today (don't check the instance daily)
The code snippet you provided is not sending JSON. Instead, it sends a form-encoded request. This is evident from the data= parameter, which sends the payload as application/x-www-form-urlencoded by default when using the requests.post() function in Python.
$ curl -X POST https://changedetection.io/check-ver.php -d "version=0.47.06"
ok
It will recheck every 24 hours or so, just restart it :)
There must still be an issue somewhere. I have double-checked and my container updated on 3 AM UTC 2024-11-08 (a bit after 7 hours after the image got built) and was running until now without a restart.
It will recheck every 24 hours or so
Yes, but it never resets after getting "ok". app.config['NEW_VERSION_AVAILABLE']
only gets set to false when the server starts up. And requiring a manual reboot to remove the message sounds a bit overkill to me.
If the check-ver.php
endpoint takes longer than a few minutes to know of the new version, I suggest modifying the behavior of def check_for_new_version()
to set app.config['NEW_VERSION_AVAILABLE']
back to False when "new_version" is not present in r.text. Alternatively, the endpoint should ensure that it doesn't return "new_version" when it gets sent a higher version than what it thinks the current version is.
curl -X POST https://changedetection.io/check-ver.php -d "xxxxxxx=0.47.06"
Error: No version information found
Can you try again? Im wondering if your instance is even connecting to the check-version server...
Does adding https://changedetection.io/CHANGELOG.txt as a watch work?
was running until now without a restart.
With that I meant that I restarted the instance and the update message disappeared.
That's the watch of the CHANGELOG:
As mentioned in the original description I never experienced this issue before and assume that this time some kind of race condition occurred.