-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrong server ETag stored in task after the first change #2077
Comments
That is really weird. I cannot explain where this number as etag comes from either. The Etag is actually handled in a separate library https://github.com/nextcloud/cdav-library, but I don't see where it could accidentally become a number there. I am still not completely convinced it isn't a config issue to be honest, especially since it works just fine on other instances. Could you please also check with other browsers, and maybe in incognito with all plugins disabled? |
Actually, you were right about browser plugins, I didn't test it and I found the problem: it's not a server side configuration, but "CleanURLs" Firefox plugins that removes Given the popularity of the library (it's also "Recommended" by Mozilla), may I suggest to add a line in the README about the incompatibility? |
Maybe not strictly necessary, since CleanURLs write
But feel free to send a PR to Tasks if you think it helps. |
This is true only for those who installs ClearURLs version 1.25.0. For those (like me) who upgrade it, the option will remain enabled (even if I never opened the preference panel in the past). I'll create a PR :-) |
Steps to reproduce
Expected behaviour
All changes successfully saved - no conflicts.
Actual behaviour
The 2nd change results in a "conflict" (
HTTP 412 Precondition Failed
). Refreshing task (yellow button) results in a loss of data for the last change.Server configuration
Operating system: Debian 11 (host) running
nextcloud:22.2.10-apache
docker imageWeb server:
nextcloud:22.2.10-apache
embeds Apache 2.4.53Database: MariaDB 10.5
PHP version: PHP 8.0.20
Nextcloud version: 22.2.10
Tasks version: 0.14.4
Updated from an older Nextcloud or fresh install: Upgraded
Signing status:
List of activated apps:
Nextcloud configuration:
Are you using external storage, if yes which one: local
Are you using encryption: no
Are you using an external user-backend, if yes which one: no
Client configuration
Browser: Firefox 100
Operating system: Debian 11
CalDAV-clients: n/a
Logs
Web server error log
Nextcloud log (data/nextcloud.log)
Browser log
First change (after the task is created):
"Conflict" request:
The response content for the "Conflict request is:
Other infos
I looked for past issues, and I found many issues with
ETag
s (see #167), so I looked closely for config issues, and there are none. TheETag
is correctly returned by the server (as you can see above), however for some reason the client loses the value and replace it with an apparently random floating point number (0.09792412366674308
in this example, as you can see inIf-Match
request header in the "Conflict" request).Using the Firefox dev toolbar I looked inside
OCA.Tasks.App.$store.state.tasks.tasks["9fe4c0d2-f9ea-4fcf-a7c3-f01ac2ff8b27~68C1E0CF-6B37-43C9-9638-AEFEBFE4FA9F"].dav.etag
and I found that this variable is holding the correctETag
once the issue has been created (or after a page refresh or after a "re-sync" using the yellow button for resync). However, after the first change, the value is changed to this strange floating point. Then, after the failedPUT
, also the.conflict
property is changed to that value`.I wasn't able to dig more for now :-(
The text was updated successfully, but these errors were encountered: