wallabag / wallabag

wallabag is a self hostable application for saving web pages: Save and classify articles. Read them later. Freely.
https://wallabag.org
MIT License
10.52k stars 770 forks source link

ReadKit sync error: "object not found by the @ParamConverter annotation" #7618

Closed itsthejb closed 2 months ago

itsthejb commented 3 months ago

Environment

My app/config/parameters.yml is: ``` # This file is auto-generated during the composer install parameters: database_driver: pdo_mysql database_host: mariadb database_port: 3306 database_name: wallabag database_user: wallabag database_password: ... database_path: null database_table_prefix: wallabag_ database_socket: null database_charset: utf8mb4 domain_name: '...' server_name: '...' mailer_dsn: 'smtp://smtp.mail.me.com' locale: en secret: ... twofactor_sender: no-reply@wallabag.org fosuser_registration: false fosuser_confirmation: false fos_oauth_server_access_token_lifetime: 3600 fos_oauth_server_refresh_token_lifetime: 1209600 from_email: no-reply@wallabag.org rss_limit: 50 rabbitmq_host: localhost rabbitmq_port: 5672 rabbitmq_user: guest rabbitmq_password: guest rabbitmq_prefetch_count: 10 redis_scheme: tcp redis_host: localhost redis_port: 6379 redis_path: null redis_password: null sentry_dsn: null ```

What steps will reproduce the bug?

Syncing with ReadKit iOS current version leads to:

IMG_208963A8C8D8-1

The error I see in the Wallabag prod.log is:

[2024-08-11T16:17:37.746553+00:00] request.INFO: Matched route "api_delete_entries". {"route":"api_delete_entries","route_parameters":{"_route":"api_delete_entries","_format":"json","_controller":"Wallabag\\ApiBundle\\Controller\\EntryRestController::deleteEntriesAction","entry":"4711"},"request_uri":"http://wallabag.jcrooke.net/api/entries/4711.json","method":"DELETE"} []
[2024-08-11T16:17:37.825752+00:00] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "Wallabag\CoreBundle\Entity\Entry object not found by the @ParamConverter annotation." at /var/www/wallabag/vendor/sensio/framework-extra-bundle/src/Request/ParamConverter/DoctrineParamConverter.php line 107 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): Wallabag\\CoreBundle\\Entity\\Entry object not found by the @ParamConverter annotation. at /var/www/wallabag/vendor/sensio/framework-extra-bundle/src/Request/ParamConverter/DoctrineParamConverter.php:107)"} []

How can I solve this error? I wonder if running on Alpine might be too restrictive. However, ReadKit has successfully synched previous (I have articles downloaded). However it's now failing consistently

Thanks in advance!

j0k3r commented 3 months ago

Looks like the entry with the id 4711 does not exists anymore in your wallabag. Can you confirm it? Maybe, we should ack that the entry is deleted if we can't found it.

But I don't know why it make the sync to fail.

itsthejb commented 3 months ago

You are correct yes - that entry doesn't exist:

Screenshot 2024-08-14 at 17 16 12

I'm going to just clear the account on the device, resync and see if that sorts it...

Thanks for your input

Kdecherf commented 3 months ago

Hello @itsthejb,

Do you know which HTTP return code was sent for the API call?

itsthejb commented 3 months ago

@Kdecherf No, it would be challenging to proxy the API calls or something

In any case, I'm inclined to believe this is a ReadKit-only specific issue. The problem appears to be using both their iOS and macOS clients together. It's possible I should be creating separate tokens for each (currently just reusing the same ones, which I suppose is smelly)