Skip to content

Bug: Syncs can become "stale" in the DB and are never cleared out #2015

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

Open
5 tasks done
FluffyClaws opened this issue Mar 21, 2025 · 18 comments
Open
5 tasks done

Bug: Syncs can become "stale" in the DB and are never cleared out #2015

FluffyClaws opened this issue Mar 21, 2025 · 18 comments
Labels
2️⃣ Medium Priority Community contributions accepted, Maybe team only works on if there are no high priority items open

Comments

@FluffyClaws
Copy link

FluffyClaws commented Mar 21, 2025

Before you start (required)

General checklist

  • I have removed personal / sensitive data from screenshots and logs
  • I have searched existing issues and discussions to ensure this is not a duplicate issue

How are you using Maybe?

  • I am a self-hosted user

Self hoster checklist

If you are a self-hosted user, please complete all of the information below. Issues with incomplete information will be marked as Needs Info to help our small team prioritize bug fixes.

  • Self hosted app commit SHA (find in user menu): [9122eaf]
    • I have confirmed that my app's commit is the latest version of Maybe
  • Where are you hosting?
    • Docker Compose

Bug description

Got stuck with "Syncing accounts data..." job. The balances are not being updated anymore, though i can add\remove\modify new\existing transactions. Not 100% sure, but it might have occured after clicking "Sycn account", althoug Im not even sure about functionality of it, since the only connected thing is Synth API.

This issue persists across all of the "accounts".

Restarting / recreating the container didnt help, and I dont see any errors or even warns in the logs.

To Reproduce

Steps to reproduce the behavior:

No clue, but a good starting point could be this:

  1. Open any of the "accounts"
  2. Add a new transaction, either expense or income.
  3. Check if the balance have been updated, if not - next.
  4. Try using "Sycn account"
  5. See if the the balance was updated if previously not, and if the "Syncing accounts data..." job finishes.

Expected behavior

After adding a new transactions the balance is updating.

Screenshots and/or recordings

Image

Image

Image

Also attaching the logs:

=> Booting Puma

=> Rails 7.2.2.1 application starting in production 

=> Run `bin/rails server --help` for more startup options

Puma starting in single mode...

* Puma version: 6.6.0 ("Return to Forever")

* Ruby version: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [x86_64-linux]

*  Min threads: 3

*  Max threads: 3

*  Environment: production

*          PID: 1

* Listening on http://0.0.0.0:3000

Use Ctrl-C to stop

I, [2025-03-21T19:02:01.435840 #1]  INFO -- : {message: "Started GET \"/cable\"", event: {http_request_received: {body: nil, content_length: nil, headers_json: "{\"Host\":\"192.168.0.8:3100\",\"Connection\":\"Upgrade\",\"Pragma\":\"no-cache\",\"Cache_Control\":\"no-cache\",\"User_Agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36\",\"Upgrade\":\"websocket\",\"Origin\":\"http://192.168.0.8:3100\",\"Sec_Websocket_Version\":\"13\",\"Accept_Encoding\":\"gzip, deflate\",\"Accept_Language\":\"en,ru;q=0.9,uk;q=0.8\",\"Cookie\":\"next-auth.csrf-token=80d625746066f1b9a470b7836f68ebb1571d011982580e17a3e0c52c877e06eb%7C0cfaf529fb7ad281e863af92de2ac610a6173a0d2cda9472548e69121c4d4340; next-auth.callback-url=http%3A%2F%2F192.168.0.8%3A3000; hoarder-user-local-settings=%7B%22bookmarkGridLayout%22%3A%22masonry%22%2C%22lang%22%3A%22en%22%7D; next-auth.session-token=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..5JE8NcMa4USdM2Au.NKewcKFCbcrE_OMnXmvoD9WAOSnDajf1BYFi1gmwHpO0e2fFrJQFQ7hYbFoPYHD3PSZu14gYjngls_0yXg26R4QlXFW8kH39-i3ZKl5j1RBix6kdhsFX1YSwc1hzpe4mcwj6EbYgSYfhY4jLpFVeKs6Rs8LfT3G7RHqYu_q9XnIabtWNoFRXjmKUAQyucZxYBiHWke1hcbxDjdPnzcStvawJV9ZAJze3oDDQ5EmGZUIyORaYUYauWujQYC8DXox01wkpAl5xUE8Z1snpYIDjwvCBU6wTjlBUZ6CZZ6T-yumEUUqvHo0vxWompYObqUNQ12h4v4FYSp0DfYh0TKaLrbZjCD31BbwDuOO6VIwtIXUVUXGaG9v-oVVczf0r.a0LMK_CN68HZHYW5uKrmjw; session_token=eyJfcmFpbHMiOnsibWVzc2FnZSI6IkltSXlZV00zTW1ZM0xUVmlOR0V0TkdOak9TMDRNR1EyTFdNeE5XUm1ZbUl6WmpGa015ST0iLCJleHAiOiIyMDQ1LTAzLTE0VDE1OjUwOjM4LjM2N1oiLCJwdXIiOiJjb29raWUuc2Vzc2lvbl90b2tlbiJ9fQ%3D%3D--291969b132237b505523b2f1a822b77f7dbf739d; PHPSESSID=0c548059b147d6f91216a3b35a59ad19; COOKIE_LOCALE=en; _maybe_session=l3xPhBnyEXYfLFOJ6gJSM00GD5L9QCzEz60jllfnVBlkAr8mWkA%2BekllpwfumMLS1Urb%2FDZzwTeFowSTW0rV%2BNUkqj1FLWOClsdaXv2niyjg%2Bq0CFR3GnKA41pMngc3eaHS3wFONHtupEJcAlvGjBw0jY05eQVDN7NU1jPyVvJQ4o6v7vFT61wmL87fuuG91YblauCYuvsAdwwKgj2KwmAioDLjzKFbjxWUPhShjQEf1jcpbCkLUPcAZItG3zpeRNldhau5FNGXNhHxzdOlqGVjfDd7zYg%3D%3D--0FsM2F1otQAwUR3A--bU49gWK8RpttG3kMdCvcxQ%3D%3D\",\"Dnt\":\"1\",\"Sec_Gpc\":\"1\",\"Sec_Websocket_Key\":\"SuunpP3Qg/sJXUQLlJYyxA==\",\"Sec_Websocket_Extensions\":\"permessage-deflate; client_max_window_bits\",\"Sec_Websocket_Protocol\":\"actioncable-v1-json, actioncable-unsupported\",\"Version\":\"HTTP/1.1\"}", host: "192.168.0.8", method: "GET", path: "/cable", port: 3100, query_string: "", request_id: "43170f1e-36f1-46aa-9d38-ecea5add4eed", scheme: "http", service_name: nil}}}

I, [2025-03-21T19:02:01.440317 #1]  INFO -- : Started GET "/cable" [WebSocket] for 192.168.0.105 at 2025-03-21 19:02:01 +0000

I, [2025-03-21T19:02:01.440414 #1]  INFO -- : Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)

I, [2025-03-21T19:02:01.442205 #1]  INFO -- : {message: "Completed -1  in 6.108013ms", event: {http_response_sent: {body: nil, content_length: nil, headers_json: "{}", request_id: "43170f1e-36f1-46aa-9d38-ecea5add4eed", service_name: nil, status: -1, duration_ms: 6.108013}}}

I, [2025-03-21T19:02:12.863567 #1]  INFO -- : {message: "Started GET \"/depositories/642cc4c5-9108-4cac-b766-922455311942\"", event: {http_request_received: {body: nil, content_length: nil, headers_json: "{\"Host\":\"192.168.0.8:3100\",\"Connection\":\"keep-alive\",\"X_Sec_Purpose\":\"prefetch\",\"User_Agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36\",\"Accept\":\"text/html, application/xhtml+xml\",\"Dnt\":\"1\",\"X_Turbo_Request_Id\":\"80d0d1dd-a374-42aa-bbc6-76d965b3422d\",\"Referer\":\"http://192.168.0.8:3100/other_assets/e40f7045-7001-4cb3-94cb-0f73c8b3e8ad\",\"Accept_Encoding\":\"gzip, deflate\",\"Accept_Language\":\"en,ru;q=0.9,uk;q=0.8\",\"Cookie\":\"next-auth.csrf-token=80d625746066f1b9a470b7836f68ebb1571d011982580e17a3e0c52c877e06eb%7C0cfaf529fb7ad281e863af92de2ac610a6173a0d2cda9472548e69121c4d4340; next-auth.callback-url=http%3A%2F%2F192.168.0.8%3A3000; hoarder-user-local-settings=%7B%22bookmarkGridLayout%22%3A%22masonry%22%2C%22lang%22%3A%22en%22%7D; next-auth.session-token=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..5JE8NcMa4USdM2Au.NKewcKFCbcrE_OMnXmvoD9WAOSnDajf1BYFi1gmwHpO0e2fFrJQFQ7hYbFoPYHD3PSZu14gYjngls_0yXg26R4QlXFW8kH39-i3ZKl5j1RBix6kdhsFX1YSwc1hzpe4mcwj6EbYgSYfhY4jLpFVeKs6Rs8LfT3G7RHqYu_q9XnIabtWNoFRXjmKUAQyucZxYBiHWke1hcbxDjdPnzcStvawJV9ZAJze3oDDQ5EmGZUIyORaYUYauWujQYC8DXox01wkpAl5xUE8Z1snpYIDjwvCBU6wTjlBUZ6CZZ6T-yumEUUqvHo0vxWompYObqUNQ12h4v4FYSp0DfYh0TKaLrbZjCD31BbwDuOO6VIwtIXUVUXGaG9v-oVVczf0r.a0LMK_CN68HZHYW5uKrmjw; session_token=eyJfcmFpbHMiOnsibWVzc2FnZSI6IkltSXlZV00zTW1ZM0xUVmlOR0V0TkdOak9TMDRNR1EyTFdNeE5XUm1ZbUl6WmpGa015ST0iLCJleHAiOiIyMDQ1LTAzLTE0VDE1OjUwOjM4LjM2N1oiLCJwdXIiOiJjb29raWUuc2Vzc2lvbl90b2tlbiJ9fQ%3D%3D--291969b132237b505523b2f1a822b77f7dbf739d; PHPSESSID=0c548059b147d6f91216a3b35a59ad19; COOKIE_LOCALE=en; _maybe_session=l3xPhBnyEXYfLFOJ6gJSM00GD5L9QCzEz60jllfnVBlkAr8mWkA%2BekllpwfumMLS1Urb%2FDZzwTeFowSTW0rV%2BNUkqj1FLWOClsdaXv2niyjg%2Bq0CFR3GnKA41pMngc3eaHS3wFONHtupEJcAlvGjBw0jY05eQVDN7NU1jPyVvJQ4o6v7vFT61wmL87fuuG91YblauCYuvsAdwwKgj2KwmAioDLjzKFbjxWUPhShjQEf1jcpbCkLUPcAZItG3zpeRNldhau5FNGXNhHxzdOlqGVjfDd7zYg%3D%3D--0FsM2F1otQAwUR3A--bU49gWK8RpttG3kMdCvcxQ%3D%3D\",\"Sec_Gpc\":\"1\",\"If_None_Match\":\"W/\\\"b3a266898d6ad98bb8868e7a6f9b3673\\\"\",\"Version\":\"HTTP/1.1\"}", host: "192.168.0.8", method: "GET", path: "/depositories/642cc4c5-9108-4cac-b766-922455311942", port: 3100, query_string: "", request_id: "1f333f63-3d17-4c8d-b080-6ccb1c993135", scheme: "http", service_name: nil}}}

I, [2025-03-21T19:02:12.865202 #1]  INFO -- : Processing by DepositoriesController#show as HTML

  Parameters: {"id" => "642cc4c5-9108-4cac-b766-922455311942"}

I, [2025-03-21T19:02:13.220400 #1]  INFO -- :   Rendered depositories/show.html.erb within layouts/application (214.8ms)

I, [2025-03-21T19:02:13.362004 #1]  INFO -- : {message: "Completed 200 OK in 497.762741ms", event: {http_response_sent: {body: nil, content_length: nil, headers_json: "{\"x-frame-options\":\"SAMEORIGIN\",\"x-xss-protection\":\"0\",\"x-content-type-options\":\"nosniff\",\"x-permitted-cross-domain-policies\":\"none\",\"referrer-policy\":\"strict-origin-when-cross-origin\",\"link\":\"\\u003c/assets/tailwind-2d0705ff.css\\u003e; rel=preload; as=style; nopush,\\u003c/assets/application-c2cd8c57.css\\u003e; rel=preload; as=style; nopush,\\u003chttps://cdn.plaid.com/link/v2/stable/link-initialize.js\\u003e; rel=preload; as=script; nopush,\\u003c/assets/hotwire_combobox-f35a07fc.css\\u003e; rel=preload; as=style; nopush\",\"content-type\":\"text/html; charset=utf-8\",\"vary\":\"Accept\"}", request_id: "1f333f63-3d17-4c8d-b080-6ccb1c993135", service_name: nil, status: 200, duration_ms: 497.762741}}}

I, [2025-03-21T19:02:13.367010 #1]  INFO -- : {message: "Started GET \"/\"", event: {http_request_received: {body: nil, content_length: nil, headers_json: "{\"Host\":\"192.168.0.8:3100\",\"Connection\":\"keep-alive\",\"X_Sec_Purpose\":\"prefetch\",\"User_Agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36\",\"Accept\":\"text/html, application/xhtml+xml\",\"Dnt\":\"1\",\"X_Turbo_Request_Id\":\"d3601e0d-7c72-43a1-9445-bdc335824597\",\"Referer\":\"http://192.168.0.8:3100/other_assets/e40f7045-7001-4cb3-94cb-0f73c8b3e8ad\",\"Accept_Encoding\":\"gzip, deflate\",\"Accept_Language\":\"en,ru;q=0.9,uk;q=0.8\",\"Cookie\":\"next-auth.csrf-token=80d625746066f1b9a470b7836f68ebb1571d011982580e17a3e0c52c877e06eb%7C0cfaf529fb7ad281e863af92de2ac610a6173a0d2cda9472548e69121c4d4340; next-auth.callback-url=http%3A%2F%2F192.168.0.8%3A3000; hoarder-user-local-settings=%7B%22bookmarkGridLayout%22%3A%22masonry%22%2C%22lang%22%3A%22en%22%7D; next-auth.session-token=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..5JE8NcMa4USdM2Au.NKewcKFCbcrE_OMnXmvoD9WAOSnDajf1BYFi1gmwHpO0e2fFrJQFQ7hYbFoPYHD3PSZu14gYjngls_0yXg26R4QlXFW8kH39-i3ZKl5j1RBix6kdhsFX1YSwc1hzpe4mcwj6EbYgSYfhY4jLpFVeKs6Rs8LfT3G7RHqYu_q9XnIabtWNoFRXjmKUAQyucZxYBiHWke1hcbxDjdPnzcStvawJV9ZAJze3oDDQ5EmGZUIyORaYUYauWujQYC8DXox01wkpAl5xUE8Z1snpYIDjwvCBU6wTjlBUZ6CZZ6T-yumEUUqvHo0vxWompYObqUNQ12h4v4FYSp0DfYh0TKaLrbZjCD31BbwDuOO6VIwtIXUVUXGaG9v-oVVczf0r.a0LMK_CN68HZHYW5uKrmjw; session_token=eyJfcmFpbHMiOnsibWVzc2FnZSI6IkltSXlZV00zTW1ZM0xUVmlOR0V0TkdOak9TMDRNR1EyTFdNeE5XUm1ZbUl6WmpGa015ST0iLCJleHAiOiIyMDQ1LTAzLTE0VDE1OjUwOjM4LjM2N1oiLCJwdXIiOiJjb29raWUuc2Vzc2lvbl90b2tlbiJ9fQ%3D%3D--291969b132237b505523b2f1a822b77f7dbf739d; PHPSESSID=0c548059b147d6f91216a3b35a59ad19; COOKIE_LOCALE=en; _maybe_session=l3xPhBnyEXYfLFOJ6gJSM00GD5L9QCzEz60jllfnVBlkAr8mWkA%2BekllpwfumMLS1Urb%2FDZzwTeFowSTW0rV%2BNUkqj1FLWOClsdaXv2niyjg%2Bq0CFR3GnKA41pMngc3eaHS3wFONHtupEJcAlvGjBw0jY05eQVDN7NU1jPyVvJQ4o6v7vFT61wmL87fuuG91YblauCYuvsAdwwKgj2KwmAioDLjzKFbjxWUPhShjQEf1jcpbCkLUPcAZItG3zpeRNldhau5FNGXNhHxzdOlqGVjfDd7zYg%3D%3D--0FsM2F1otQAwUR3A--bU49gWK8RpttG3kMdCvcxQ%3D%3D\",\"Sec_Gpc\":\"1\",\"If_None_Match\":\"W/\\\"e8689b3b25b4f262f9bf68d2b93f3d7d\\\"\",\"Version\":\"HTTP/1.1\"}", host: "192.168.0.8", method: "GET", path: "/", port: 3100, query_string: "", request_id: "2766e64c-ddb5-4e0b-a46c-585dbba84f77", scheme: "http", service_name: nil}}}

I, [2025-03-21T19:02:13.369237 #1]  INFO -- : Processing by PagesController#dashboard as HTML

I, [2025-03-21T19:02:13.480557 #1]  INFO -- :   Rendered pages/dashboard.html.erb within layouts/application (92.5ms)

I, [2025-03-21T19:02:13.563345 #1]  INFO -- : {message: "Completed 200 OK in 196.119157ms", event: {http_response_sent: {body: nil, content_length: nil, headers_json: "{\"x-frame-options\":\"SAMEORIGIN\",\"x-xss-protection\":\"0\",\"x-content-type-options\":\"nosniff\",\"x-permitted-cross-domain-policies\":\"none\",\"referrer-policy\":\"strict-origin-when-cross-origin\",\"link\":\"\\u003c/assets/tailwind-2d0705ff.css\\u003e; rel=preload; as=style; nopush,\\u003c/assets/application-c2cd8c57.css\\u003e; rel=preload; as=style; nopush,\\u003chttps://cdn.plaid.com/link/v2/stable/link-initialize.js\\u003e; rel=preload; as=script; nopush,\\u003c/assets/hotwire_combobox-f35a07fc.css\\u003e; rel=preload; as=style; nopush\",\"content-type\":\"text/html; charset=utf-8\",\"vary\":\"Accept\"}", request_id: "2766e64c-ddb5-4e0b-a46c-585dbba84f77", service_name: nil, status: 200, duration_ms: 196.119157}}}

I, [2025-03-21T19:02:13.687065 #1]  INFO -- : {message: "Started GET \"/\"", event: {http_request_received: {body: nil, content_length: nil, headers_json: "{\"Host\":\"192.168.0.8:3100\",\"Connection\":\"keep-alive\",\"X_Sec_Purpose\":\"prefetch\",\"User_Agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36\",\"Accept\":\"text/html, application/xhtml+xml\",\"Dnt\":\"1\",\"X_Turbo_Request_Id\":\"a95c32c0-d8e2-499b-8407-0a0589acb389\",\"Referer\":\"http://192.168.0.8:3100/other_assets/e40f7045-7001-4cb3-94cb-0f73c8b3e8ad\",\"Accept_Encoding\":\"gzip, deflate\",\"Accept_Language\":\"en,ru;q=0.9,uk;q=0.8\",\"Cookie\":\"next-auth.csrf-token=80d625746066f1b9a470b7836f68ebb1571d011982580e17a3e0c52c877e06eb%7C0cfaf529fb7ad281e863af92de2ac610a6173a0d2cda9472548e69121c4d4340; next-auth.callback-url=http%3A%2F%2F192.168.0.8%3A3000; hoarder-user-local-settings=%7B%22bookmarkGridLayout%22%3A%22masonry%22%2C%22lang%22%3A%22en%22%7D; next-auth.session-token=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..5JE8NcMa4USdM2Au.NKewcKFCbcrE_OMnXmvoD9WAOSnDajf1BYFi1gmwHpO0e2fFrJQFQ7hYbFoPYHD3PSZu14gYjngls_0yXg26R4QlXFW8kH39-i3ZKl5j1RBix6kdhsFX1YSwc1hzpe4mcwj6EbYgSYfhY4jLpFVeKs6Rs8LfT3G7RHqYu_q9XnIabtWNoFRXjmKUAQyucZxYBiHWke1hcbxDjdPnzcStvawJV9ZAJze3oDDQ5EmGZUIyORaYUYauWujQYC8DXox01wkpAl5xUE8Z1snpYIDjwvCBU6wTjlBUZ6CZZ6T-yumEUUqvHo0vxWompYObqUNQ12h4v4FYSp0DfYh0TKaLrbZjCD31BbwDuOO6VIwtIXUVUXGaG9v-oVVczf0r.a0LMK_CN68HZHYW5uKrmjw; session_token=eyJfcmFpbHMiOnsibWVzc2FnZSI6IkltSXlZV00zTW1ZM0xUVmlOR0V0TkdOak9TMDRNR1EyTFdNeE5XUm1ZbUl6WmpGa015ST0iLCJleHAiOiIyMDQ1LTAzLTE0VDE1OjUwOjM4LjM2N1oiLCJwdXIiOiJjb29raWUuc2Vzc2lvbl90b2tlbiJ9fQ%3D%3D--291969b132237b505523b2f1a822b77f7dbf739d; PHPSESSID=0c548059b147d6f91216a3b35a59ad19; COOKIE_LOCALE=en; _maybe_session=gxg6UWOXWcfgKHBRnfHijNUlo%2FpVB9f%2FaWxJur6wkr7UX%2FnbB5HtiVGP2VBvQvMRfmN6g0VeLp6%2Bp9IuacfugKQPi64QlS6jkdFzo%2B%2BLqSJsUSQCzfY8ozckon6MkQY%2FUX21kSqyQ%2FBliSn4%2B7KOJuTsoA790NEmnSc%2FNle8AciTF3GD9H9VRMM2wyVmikCXCQEVZZ9v35qs13WZvB8iO7w%2Bm5uk0YYPyILVqUQPQoappuVA78vGeqh8p8q1ZytWesfS25JXizlkxk9Uo8JeYtBzkMPPcg%3D%3D--6QzJLkzxH70wgYM%2F--9x24y8Q8EolPsTqYocmzcQ%3D%3D\",\"Sec_Gpc\":\"1\",\"If_None_Match\":\"W/\\\"6c59d2ef126df7b5734e215a98fc7479\\\"\",\"Version\":\"HTTP/1.1\"}", host: "192.168.0.8", method: "GET", path: "/", port: 3100, query_string: "", request_id: "8efaaa09-2109-4392-8590-eddb88117ec0", scheme: "http", service_name: nil}}}

I, [2025-03-21T19:02:13.687781 #1]  INFO -- : Processing by PagesController#dashboard as HTML

I, [2025-03-21T19:02:13.747447 #1]  INFO -- :   Rendered pages/dashboard.html.erb within layouts/application (34.4ms)

I, [2025-03-21T19:02:13.782749 #1]  INFO -- : {message: "Completed 200 OK in 95.507929ms", event: {http_response_sent: {body: nil, content_length: nil, headers_json: "{\"x-frame-options\":\"SAMEORIGIN\",\"x-xss-protection\":\"0\",\"x-content-type-options\":\"nosniff\",\"x-permitted-cross-domain-policies\":\"none\",\"referrer-policy\":\"strict-origin-when-cross-origin\",\"link\":\"\\u003c/assets/tailwind-2d0705ff.css\\u003e; rel=preload; as=style; nopush,\\u003c/assets/application-c2cd8c57.css\\u003e; rel=preload; as=style; nopush,\\u003chttps://cdn.plaid.com/link/v2/stable/link-initialize.js\\u003e; rel=preload; as=script; nopush,\\u003c/assets/hotwire_combobox-f35a07fc.css\\u003e; rel=preload; as=style; nopush\",\"content-type\":\"text/html; charset=utf-8\",\"vary\":\"Accept\"}", request_id: "8efaaa09-2109-4392-8590-eddb88117ec0", service_name: nil, status: 200, duration_ms: 95.507929}}}

I, [2025-03-21T19:02:14.327430 #1]  INFO -- : Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllROm5vdGlmaWNhdGlvbnMi--cf8c5c8aa9d3a111ee9747ff3033bccdad080b947d1a09489b85101577b38982"}

I, [2025-03-21T19:02:14.330676 #1]  INFO -- : Turbo::StreamsChannel stopped streaming from Z2lkOi8vbWF5YmUvRmFtaWx5LzliM2FlMWNiLTg2ZjItNDZlZi05NTI2LTljYmM0MzhhYWY2YQ:notifications

I, [2025-03-21T19:02:14.328382 #1]  INFO -- : Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZRV05qYjNWdWRDOWxOREJtTnpBME5TMDNNREF4TFRSallqTXRPVFJqWWkwd1pqY3pZemhpTTJVNFlXUSI=--ae220302915b847c3c75384c67d6abc56a30d5dfb5e0a1badbcb47ffdbfe3c0c"}

I, [2025-03-21T19:02:14.340092 #1]  INFO -- : Turbo::StreamsChannel stopped streaming from Z2lkOi8vbWF5YmUvQWNjb3VudC9lNDBmNzA0NS03MDAxLTRjYjMtOTRjYi0wZjczYzhiM2U4YWQ

I, [2025-03-21T19:02:14.328064 #1]  INFO -- : Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllRIg==--73a18264274bb5a7abc1957e64aa01aa81d9b79852c44131dc4a360251000a44"}

I, [2025-03-21T19:02:14.340587 #1]  INFO -- : Turbo::StreamsChannel stopped streaming from Z2lkOi8vbWF5YmUvRmFtaWx5LzliM2FlMWNiLTg2ZjItNDZlZi05NTI2LTljYmM0MzhhYWY2YQ

I, [2025-03-21T19:02:14.367460 #1]  INFO -- : Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllROm5vdGlmaWNhdGlvbnMi--cf8c5c8aa9d3a111ee9747ff3033bccdad080b947d1a09489b85101577b38982"}

I, [2025-03-21T19:02:14.368371 #1]  INFO -- : Turbo::StreamsChannel stopped streaming from Z2lkOi8vbWF5YmUvRmFtaWx5LzliM2FlMWNiLTg2ZjItNDZlZi05NTI2LTljYmM0MzhhYWY2YQ:notifications

I, [2025-03-21T19:02:14.368012 #1]  INFO -- : Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllRIg==--73a18264274bb5a7abc1957e64aa01aa81d9b79852c44131dc4a360251000a44"}

E, [2025-03-21T19:02:14.371073 #1] ERROR -- : Could not execute command from ({"command" => "unsubscribe", "identifier" => "{\"channel\":\"Turbo::StreamsChannel\",\"signed_stream_name\":\"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllRIg==--73a18264274bb5a7abc1957e64aa01aa81d9b79852c44131dc4a360251000a44\"}"}) [RuntimeError - Unable to find subscription with identifier: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllRIg==--73a18264274bb5a7abc1957e64aa01aa81d9b79852c44131dc4a360251000a44"}]: /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/subscriptions.rb:80:in 'ActionCable::Connection::Subscriptions#find' | /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/subscriptions.rb:52:in 'ActionCable::Connection::Subscriptions#remove' | /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/subscriptions.rb:23:in 'ActionCable::Connection::Subscriptions#execute_command' | /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/base.rb:111:in 'block in ActionCable::Connection::Base#handle_channel_command' | /usr/local/bundle/ruby/3.4.0/gems/activesupport-7.2.2.1/lib/active_support/callbacks.rb:101:in 'ActiveSupport::Callbacks#run_callbacks'

I, [2025-03-21T19:02:22.013221 #1]  INFO -- : {message: "Started GET \"/\"", event: {http_request_received: {body: nil, content_length: nil, headers_json: "{\"Host\":\"192.168.0.8:3100\",\"Connection\":\"keep-alive\",\"User_Agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36\",\"Accept\":\"text/html, application/xhtml+xml\",\"Dnt\":\"1\",\"X_Turbo_Request_Id\":\"5e49852a-4138-4600-9427-71e2e53ab9c2\",\"Referer\":\"http://192.168.0.8:3100/\",\"Accept_Encoding\":\"gzip, deflate\",\"Accept_Language\":\"en,ru;q=0.9,uk;q=0.8\",\"Cookie\":\"next-auth.csrf-token=80d625746066f1b9a470b7836f68ebb1571d011982580e17a3e0c52c877e06eb%7C0cfaf529fb7ad281e863af92de2ac610a6173a0d2cda9472548e69121c4d4340; next-auth.callback-url=http%3A%2F%2F192.168.0.8%3A3000; hoarder-user-local-settings=%7B%22bookmarkGridLayout%22%3A%22masonry%22%2C%22lang%22%3A%22en%22%7D; next-auth.session-token=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..5JE8NcMa4USdM2Au.NKewcKFCbcrE_OMnXmvoD9WAOSnDajf1BYFi1gmwHpO0e2fFrJQFQ7hYbFoPYHD3PSZu14gYjngls_0yXg26R4QlXFW8kH39-i3ZKl5j1RBix6kdhsFX1YSwc1hzpe4mcwj6EbYgSYfhY4jLpFVeKs6Rs8LfT3G7RHqYu_q9XnIabtWNoFRXjmKUAQyucZxYBiHWke1hcbxDjdPnzcStvawJV9ZAJze3oDDQ5EmGZUIyORaYUYauWujQYC8DXox01wkpAl5xUE8Z1snpYIDjwvCBU6wTjlBUZ6CZZ6T-yumEUUqvHo0vxWompYObqUNQ12h4v4FYSp0DfYh0TKaLrbZjCD31BbwDuOO6VIwtIXUVUXGaG9v-oVVczf0r.a0LMK_CN68HZHYW5uKrmjw; session_token=eyJfcmFpbHMiOnsibWVzc2FnZSI6IkltSXlZV00zTW1ZM0xUVmlOR0V0TkdOak9TMDRNR1EyTFdNeE5XUm1ZbUl6WmpGa015ST0iLCJleHAiOiIyMDQ1LTAzLTE0VDE1OjUwOjM4LjM2N1oiLCJwdXIiOiJjb29raWUuc2Vzc2lvbl90b2tlbiJ9fQ%3D%3D--291969b132237b505523b2f1a822b77f7dbf739d; PHPSESSID=0c548059b147d6f91216a3b35a59ad19; COOKIE_LOCALE=en; _maybe_session=Uhyh90qZy6%2B3oBoUI1iC0plpGjb1R%2BY13KJTj373tC5V%2Bd9XQGi2IflWri9jTpglYpFKZMIx4LyTVqp6O5f3T2YQQVvs4MRxkVmKFUFXVQpR3fBezFmPzNCXpuqaukaK0GpczIH4oIM742uLt85xYsnu%2BlEeRoozBkgWrrTjc1QfAlro%2FQvpuM9O9ONaws%2FYpUc8jtOC%2BX3ouZCD8rf6ivAc2%2FqIAXIB%2BmTaOlEtKwJZKtr1W3PORcSr1czcWr6tJtm5wIlsGBC0pV%2FNmiH6MwcApyRtig%3D%3D--EXicKKcwwM5baRiv--CTangrxYebUjPeubWRSiZg%3D%3D\",\"Sec_Gpc\":\"1\",\"If_None_Match\":\"W/\\\"428c376c7385ebb4c8f831605e9e576d\\\"\",\"Version\":\"HTTP/1.1\"}", host: "192.168.0.8", method: "GET", path: "/", port: 3100, query_string: "", request_id: "39460891-6a76-4303-93f7-603597605759", scheme: "http", service_name: nil}}}

I, [2025-03-21T19:02:22.016359 #1]  INFO -- : Processing by PagesController#dashboard as HTML

I, [2025-03-21T19:02:22.020785 #1]  INFO -- : Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllROm5vdGlmaWNhdGlvbnMi--cf8c5c8aa9d3a111ee9747ff3033bccdad080b947d1a09489b85101577b38982"}

I, [2025-03-21T19:02:22.040501 #1]  INFO -- : Turbo::StreamsChannel stopped streaming from Z2lkOi8vbWF5YmUvRmFtaWx5LzliM2FlMWNiLTg2ZjItNDZlZi05NTI2LTljYmM0MzhhYWY2YQ:notifications

I, [2025-03-21T19:02:22.024234 #1]  INFO -- : Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllRIg==--73a18264274bb5a7abc1957e64aa01aa81d9b79852c44131dc4a360251000a44"}

I, [2025-03-21T19:02:22.041884 #1]  INFO -- : Turbo::StreamsChannel stopped streaming from Z2lkOi8vbWF5YmUvRmFtaWx5LzliM2FlMWNiLTg2ZjItNDZlZi05NTI2LTljYmM0MzhhYWY2YQ

I, [2025-03-21T19:02:22.084297 #1]  INFO -- :   Rendered pages/dashboard.html.erb within layouts/application (38.0ms)

I, [2025-03-21T19:02:22.111512 #1]  INFO -- : {message: "Completed 200 OK in 97.833187ms", event: {http_response_sent: {body: nil, content_length: nil, headers_json: "{\"x-frame-options\":\"SAMEORIGIN\",\"x-xss-protection\":\"0\",\"x-content-type-options\":\"nosniff\",\"x-permitted-cross-domain-policies\":\"none\",\"referrer-policy\":\"strict-origin-when-cross-origin\",\"link\":\"\\u003c/assets/tailwind-2d0705ff.css\\u003e; rel=preload; as=style; nopush,\\u003c/assets/application-c2cd8c57.css\\u003e; rel=preload; as=style; nopush,\\u003chttps://cdn.plaid.com/link/v2/stable/link-initialize.js\\u003e; rel=preload; as=script; nopush,\\u003c/assets/hotwire_combobox-f35a07fc.css\\u003e; rel=preload; as=style; nopush\",\"content-type\":\"text/html; charset=utf-8\",\"vary\":\"Accept\"}", request_id: "39460891-6a76-4303-93f7-603597605759", service_name: nil, status: 200, duration_ms: 97.833187}}}

I, [2025-03-21T19:02:22.118382 #1]  INFO -- : Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllROm5vdGlmaWNhdGlvbnMi--cf8c5c8aa9d3a111ee9747ff3033bccdad080b947d1a09489b85101577b38982"}

E, [2025-03-21T19:02:22.118632 #1] ERROR -- : Could not execute command from ({"command" => "unsubscribe", "identifier" => "{\"channel\":\"Turbo::StreamsChannel\",\"signed_stream_name\":\"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllROm5vdGlmaWNhdGlvbnMi--cf8c5c8aa9d3a111ee9747ff3033bccdad080b947d1a09489b85101577b38982\"}"}) [RuntimeError - Unable to find subscription with identifier: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllROm5vdGlmaWNhdGlvbnMi--cf8c5c8aa9d3a111ee9747ff3033bccdad080b947d1a09489b85101577b38982"}]: /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/subscriptions.rb:80:in 'ActionCable::Connection::Subscriptions#find' | /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/subscriptions.rb:52:in 'ActionCable::Connection::Subscriptions#remove' | /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/subscriptions.rb:23:in 'ActionCable::Connection::Subscriptions#execute_command' | /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/base.rb:111:in 'block in ActionCable::Connection::Base#handle_channel_command' | /usr/local/bundle/ruby/3.4.0/gems/activesupport-7.2.2.1/lib/active_support/callbacks.rb:101:in 'ActiveSupport::Callbacks#run_callbacks'

I, [2025-03-21T19:02:22.118466 #1]  INFO -- : Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllRIg==--73a18264274bb5a7abc1957e64aa01aa81d9b79852c44131dc4a360251000a44"}

E, [2025-03-21T19:02:22.118825 #1] ERROR -- : Could not execute command from ({"command" => "unsubscribe", "identifier" => "{\"channel\":\"Turbo::StreamsChannel\",\"signed_stream_name\":\"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllRIg==--73a18264274bb5a7abc1957e64aa01aa81d9b79852c44131dc4a360251000a44\"}"}) [RuntimeError - Unable to find subscription with identifier: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2YldGNVltVXZSbUZ0YVd4NUx6bGlNMkZsTVdOaUxUZzJaakl0TkRabFppMDVOVEkyTFRsalltTTBNemhoWVdZMllRIg==--73a18264274bb5a7abc1957e64aa01aa81d9b79852c44131dc4a360251000a44"}]: /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/subscriptions.rb:80:in 'ActionCable::Connection::Subscriptions#find' | /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/subscriptions.rb:52:in 'ActionCable::Connection::Subscriptions#remove' | /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/subscriptions.rb:23:in 'ActionCable::Connection::Subscriptions#execute_command' | /usr/local/bundle/ruby/3.4.0/gems/actioncable-7.2.2.1/lib/action_cable/connection/base.rb:111:in 'block in ActionCable::Connection::Base#handle_channel_command' | /usr/local/bundle/ruby/3.4.0/gems/activesupport-7.2.2.1/lib/active_support/callbacks.rb:101:in 'ActiveSupport::Callbacks#run_callbacks'
@FluffyClaws
Copy link
Author

FluffyClaws commented Mar 21, 2025

Found and updated the image (f8d6456), but it didnt fix the existing issue.

UPD:
Managed to get an actual error when trying to update the account balance manualy.

E, [2025-03-21T19:31:37.197179 #1] ERROR -- : [ActiveJob] Failed enqueuing SyncJob to Sidekiq(high_priority): RedisClient::CannotConnectError (Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379))

F, [2025-03-21T19:31:37.199017 #1] FATAL -- : RedisClient::CannotConnectError (Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379))

The UI also throws an error - We're sorry, but something went wrong. navigating back, or to any other page works, as well as the balance gets updated, kinda, attaching the screenshots. Also sorry if the screenshots are too big :)

Here, I`ve manualy set an account balance from the previous reported in the original message which lead to the error above.
Image

Here i repeated the same and got the same error:
Image

UPD2: got the same errors when adding a transaction as well "Content missing" text in the UI:

E, [2025-03-21T19:46:44.960424 #1] ERROR -- : [ActiveJob] Failed enqueuing SyncJob to Sidekiq(high_priority): RedisClient::CannotConnectError (Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379))

F, [2025-03-21T19:46:44.961026 #1] FATAL -- : RedisClient::CannotConnectError (Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379))

Image

@zachgoll
Copy link
Collaborator

Hey @FluffyClaws, this appears to be related to the recent breaking changes we pushed. Have you gone through the migration guide? You'll need to add the Redis service to your Compose stack as described here:

#2004 (comment)

@pauleke65
Copy link
Contributor

Hi @zachgoll , I'm having same issue, just added redis, but still stuck syncing accounts.
I've logged into sidekiq, and the job is stuck there, it has been for a while.

Image

@pauleke65
Copy link
Contributor

pauleke65 commented Mar 22, 2025

Hi @zachgoll , I'm having same issue, just added redis, but still stuck syncing accounts. I've logged into sidekiq, and the job is stuck there, it has been for a while.

Turns out sidekiq worker wasn't running so I updated my start command to run it.

Although, it doesn't seem to be updating the investments section, and syncing the stock prices.

And the "Syncing accounts data" alert still gets stuck sometimes

@pauleke65
Copy link
Contributor

Error Logs

I, [2025-03-22T00:59:29.411514 #2]  INFO -- : Processing by InvestmentsController#show as HTML

  Parameters: {"id" => "7fec1fae-b147-4546-8c59-0db73d86ab80"}

I, [2025-03-22T00:59:29.442803 #3]  INFO -- : [ActiveJob] [SyncJob] [2ec89fe4-a5c9-4f2d-ba68-8c467805b037] [Sync] [0b98df5f-74c5-43f7-922e-a142d8ce7eef] [Account] [278b99bd-cc1c-47d8-9714-0204056c4ff8] Balance update: cash=76.7, total=76.7

I, [2025-03-22T00:59:29.644986 #3]  INFO -- : [ActiveJob] [SyncJob] [2ec89fe4-a5c9-4f2d-ba68-8c467805b037] [Sync] [0b98df5f-74c5-43f7-922e-a142d8ce7eef] [Account] [278b99bd-cc1c-47d8-9714-0204056c4ff8] Synced #<ActiveRecord::Result:0x00007fed11af1968> exchange rates for account 278b99bd-cc1c-47d8-9714-0204056c4ff8

I, [2025-03-22T00:59:29.648863 #3]  INFO -- : [ActiveJob] [SyncJob] [2ec89fe4-a5c9-4f2d-ba68-8c467805b037] [Sync] [0b98df5f-74c5-43f7-922e-a142d8ce7eef] [Account] [278b99bd-cc1c-47d8-9714-0204056c4ff8] Sync completed

I, [2025-03-22T00:59:29.658974 #3]  INFO -- : [ActiveJob] [SyncJob] [2ec89fe4-a5c9-4f2d-ba68-8c467805b037] [Sync] [0b98df5f-74c5-43f7-922e-a142d8ce7eef] [Account] [278b99bd-cc1c-47d8-9714-0204056c4ff8] Sync completed, starting post-sync

I, [2025-03-22T00:59:29.741484 #3]  INFO -- : [ActiveJob] [SyncJob] [2ec89fe4-a5c9-4f2d-ba68-8c467805b037] [Sync] [0b98df5f-74c5-43f7-922e-a142d8ce7eef] [Account] [278b99bd-cc1c-47d8-9714-0204056c4ff8] Post-sync completed

I, [2025-03-22T00:59:29.741658 #3]  INFO -- : [ActiveJob] [SyncJob] [2ec89fe4-a5c9-4f2d-ba68-8c467805b037] Performed SyncJob (Job ID: 2ec89fe4-a5c9-4f2d-ba68-8c467805b037) from Sidekiq(high_priority) in 3914.2ms

INFO  2025-03-22T00:59:29.742Z pid=3 tid=h57 jid=63b98d7bdb8b0c917c1fbf48 class=SyncJob elapsed=3.915: done

I, [2025-03-22T00:59:29.745330 #2]  INFO -- :   Rendered investments/show.html.erb within layouts/application (230.0ms)

I, [2025-03-22T00:59:29.773225 #2]  INFO -- : {message: "Completed 200 OK in 363.37141ms", event: {http_response_sent: {body: nil, content_length: nil, headers_json: "{\"x-frame-options\":\"SAMEORIGIN\",\"x-xss-protection\":\"0\",\"x-content-type-options\":\"nosniff\",\"x-permitted-cross-domain-policies\":\"none\",\"referrer-policy\":\"strict-origin-when-cross-origin\",\"link\":\"\\u003c/assets/tailwind-2d0705ff.css\\u003e; rel=preload; as=style; nopush,\\u003c/assets/application-c2cd8c57.css\\u003e; rel=preload; as=style; nopush,\\u003chttps://cdn.plaid.com/link/v2/stable/link-initialize.js\\u003e; rel=preload; as=script; nopush,\\u003c/assets/hotwire_combobox-f35a07fc.css\\u003e; rel=preload; as=style; nopush\",\"content-type\":\"text/html; charset=utf-8\",\"vary\":\"Accept\"}", request_id: "a91f70b9-9775-4bd3-b36f-50fe760da63b", service_name: nil, status: 200, duration_ms: 363.37141}}}

E, [2025-03-22T00:59:29.871414 #3] ERROR -- : [ActiveJob] [SyncJob] [4c3435a5-9d89-4104-a363-c4b59e042c4b] [Sync] [4482d038-edbc-4ac3-84f4-94fdc2076915] [Account] [7fec1fae-b147-4546-8c59-0db73d86ab80] Sync failed: PG::NotNullViolation: ERROR:  null value in column "price" of relation "security_prices" violates not-null constraint

DETAIL:  Failing row contains (bed310d7-132e-43b1-9519-8d578f15635e, 2025-02-16, null, PLN, 2025-03-22 00:59:26.831035, 2025-03-22 00:59:26.831035, 577b919e-eea6-49d6-a9e8-08b4f4add3f6).

 

I, [2025-03-22T00:59:29.875579 #3]  INFO -- : [ActiveJob] [SyncJob] [4c3435a5-9d89-4104-a363-c4b59e042c4b] [Sync] [4482d038-edbc-4ac3-84f4-94fdc2076915] [Account] [7fec1fae-b147-4546-8c59-0db73d86ab80] Sync completed, starting post-sync

I, [2025-03-22T00:59:29.920077 #3]  INFO -- : [ActiveJob] [SyncJob] [4c3435a5-9d89-4104-a363-c4b59e042c4b] [Sync] [4482d038-edbc-4ac3-84f4-94fdc2076915] [Account] [7fec1fae-b147-4546-8c59-0db73d86ab80] Post-sync completed

I, [2025-03-22T00:59:29.920646 #3]  INFO -- : [ActiveJob] [SyncJob] [4c3435a5-9d89-4104-a363-c4b59e042c4b] Performed SyncJob (Job ID: 4c3435a5-9d89-4104-a363-c4b59e042c4b) from Sidekiq(high_priority) in 4117.02ms

INFO  2025-03-22T00:59:29.920Z pid=3 tid=gub jid=c0d029031047260c73a7547c class=SyncJob elapsed=4.119: done

I, [2025-03-22T00:59:30.528769 #2]  INFO -- : {message: "Started GET \"/investments/new\"", event: {http_request_received: {body: nil, content_length: nil, headers_json: "{\"Host\":\"finance.paulimoke.com\",\"User_Agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15\",\"Accept\":\"text/html, application/xhtml+xml\",\"Accept_Encoding\":\"gzip, deflate, br\",\"Accept_Language\":\"en-US,en;q=0.9\",\"Authorization\":\"Basic bWF5YmU6bWF5YmU=\",\"Cookie\":\"_maybe_session=uCIBOdwKlO6I5UHQ6EtixZPz4DRkX%2FOY%2Bkoe%2BxWp11UfVGTG%2FQgjdH%2FHsbxwc4N1ypxHvqXyGarFb1golWYN9vJAhP3Nh3TKw5G4sr7JZE0CVu4rVs79HhmhFEU%2BP%2B%2FDJ6skb8KvazC%2Boq9DhZoDGLmoMVWyN%2B63E4Xq0vfhXLLQSJ3XoiFPILiOXVVLYMeoy%2B1EG%2F2Dnn2AajYD%2BNVzfEnRyGxiUT3VzcovljzAAQbF1qRNDQZ0KKp0Ul3PIJWDND7wk0G%2BkF7A3YU%2BnzG33mhSMCabCNrMR5PE%2FZj9CQUjna7zXbEFFPQpuTznZ9wWyL1opmms7yJiu5HLsJPb%2Fk50W6WhK%2ByFaSOwN1ft%2FQGwdjoswTKSOJeEhZ8LMQ%3D%3D--kViTSL4b234tfIrg--9UfB0Q4Q%2BMIcIVlqsm%2FJmQ%3D%3D; session_token=eyJfcmFpbHMiOnsibWVzc2FnZSI6IkltTTVNbUl5TXpReExUWmhPV1F0TkRKak55MDRZak15TFRRMU1UZzRPREl6TkdVMk5pST0iLCJleHAiOiIyMDQ1LTAzLTIxVDIyOjIzOjQ0LjkxNFoiLCJwdXIiOiJjb29raWUuc2Vzc2lvbl90b2tlbiJ9fQ%3D%3D--a6de764a9cf5469715aeb6940b9247d76f5cc968\",\"If_None_Match\":\"W/\\\"999232970b4d3693a1a09ccdbf544277\\\"\",\"Priority\":\"u=3, i\",\"Referer\":\"https://finance.paulimoke.com/transactions\",\"Sec_Fetch_Dest\":\"empty\",\"Sec_Fetch_Mode\":\"cors\",\"Sec_Fetch_Site\":\"same-origin\",\"Turbo_Frame\":\"modal\",\"X_Forwarded_For\":\"102.90.82.36\",\"X_Forwarded_Host\":\"finance.paulimoke.com\",\"X_Forwarded_Proto\":\"https\",\"X_Railway_Edge\":\"railway/europe-west4\",\"X_Railway_Request_Id\":\"TuY5jBlHSliVphE718w1zg_274150231\",\"X_Real_Ip\":\"102.90.82.36\",\"X_Request_Start\":\"1742605170455\",\"X_Sec_Purpose\":\"prefetch\",\"X_Turbo_Request_Id\":\"c42bda49-057e-4039-ac24-c91a8deea520\",\"Version\":\"HTTP/1.1\"}", host: "finance.paulimoke.com", method: "GET", path: "/investments/new", port: 443, query_string: "step=method_select", request_id: "4a45e00f-55bb-473d-b44c-ed8ee5776815", scheme: "https", service_name: nil}}}

@FluffyClaws
Copy link
Author

Hey @FluffyClaws, this appears to be related to the recent breaking changes we pushed. Have you gone through the migration guide? You'll need to add the Redis service to your Compose stack as described here:

#2004 (comment)

Oh well, I really did miss it.
After the migration everything worked from the start. At least the balances are updated and I dont see any more issues for now.

Thanks for quick reply and help!

@jsddsfoh
Copy link

Just want to leave a note, in case someone else runs in that issue:
I had the same error message on a clean install. Turned out it was because I skipped step 4 of the install manual https://github.com/maybe-finance/maybe/blob/main/docs/hosting/docker.md
Don't understand why this is important to do, but it only works when it's done this way.

@socekin
Copy link

socekin commented Mar 23, 2025

Hey @FluffyClaws, this appears to be related to the recent breaking changes we pushed. Have you gone through the migration guide? You'll need to add the Redis service to your Compose stack as described here:

#2004 (comment)

I followed the tutorial to upgrade, and the upgrade process was all normal, but I still get stuck with the "Syncing accounts data..." prompt.

@rubenRP
Copy link

rubenRP commented Mar 24, 2025

Same here. I have Redis on Heroku and works fine. If I manually sync an account the prompt disappears, but when I navigate to the home, transactions or budget, appears again.
Attached an example or the worker logs when I update an account and move to the home:

app[worker.1]: I, [2025-03-24T17:25:26.627275 #2]  INFO -- : [ActiveJob] [SyncJob] [4ca8-bcb9-2554b7f918e9] [Sync] [eae13bb0-7e68-4549-898c-1027a310f4f7] [Account] [f58b5099-9fc9-4549-8f02-deb401622cb4] Persisting 0 holdings
app[worker.1]: I, [2025-03-24T17:25:26.638908 #2]  INFO -- : [ActiveJob] [SyncJob] [4ca8-bcb9-2554b7f918e9] [Sync] [eae13bb0-7e68-4549-898c-1027a310f4f7] [Account] [f58b5099-9fc9-4549-8f02-deb401622cb4] Clearing all holdings (no securities)
app[worker.1]: I, [2025-03-24T17:25:28.067594 #2]  INFO -- : [ActiveJob] [SyncJob] [4ca8-bcb9-2554b7f918e9] [Sync] [eae13bb0-7e68-4549-898c-1027a310f4f7] [Account] [f58b5099-9fc9-4549-8f02-deb401622cb4] Persisting 1060 balances
app[worker.1]: I, [2025-03-24T17:25:28.147709 #2]  INFO -- : [ActiveJob] [SyncJob] [4ca8-bcb9-2554b7f918e9] [Sync] [eae13bb0-7e68-4549-898c-1027a310f4f7] [Account] [f58b5099-9fc9-4549-8f02-deb401622cb4] Balance update: cash=926.08, total=926.08
app[worker.1]: I, [2025-03-24T17:25:28.149090 #2]  INFO -- : [ActiveJob] [SyncJob] [4ca8-bcb9-2554b7f918e9] [Sync] [eae13bb0-7e68-4549-898c-1027a310f4f7] [Account] [f58b5099-9fc9-4549-8f02-deb401622cb4] No exchange rate sync needed for account f58b5099-9fc9-4549-8f02-deb401622cb4
app[worker.1]: I, [2025-03-24T17:25:28.169370 #2]  INFO -- : [ActiveJob] [SyncJob] [4ca8-bcb9-2554b7f918e9] [Sync] [eae13bb0-7e68-4549-898c-1027a310f4f7] [Account] [f58b5099-9fc9-4549-8f02-deb401622cb4] Sync completed
app[worker.1]: I, [2025-03-24T17:25:28.185236 #2]  INFO -- : [ActiveJob] [SyncJob] [4ca8-bcb9-2554b7f918e9] [Sync] [eae13bb0-7e68-4549-898c-1027a310f4f7] [Account] [f58b5099-9fc9-4549-8f02-deb401622cb4] Sync completed, starting post-sync
app[worker.1]: I, [2025-03-24T17:25:28.219366 #2]  INFO -- : [ActiveJob] [SyncJob] [4ca8-bcb9-2554b7f918e9] [Sync] [eae13bb0-7e68-4549-898c-1027a310f4f7] [Account] [f58b5099-9fc9-4549-8f02-deb401622cb4] Post-sync completed
app[worker.1]: I, [2025-03-24T17:25:28.219478 #2]  INFO -- : [ActiveJob] [SyncJob] [4ca8-bcb9-2554b7f918e9] Performed SyncJob (Job ID: 753c-4ca8-bcb9-2554b7f918e9) from Sidekiq(high_priority) in 2781.64ms
app[worker.1]: �[1;34mINFO �[0m pid=2 tid=gtm  jid=5c7e35e8e1189b3a07b53c9d class=SyncJob elapsed=2.783: done

@mamarguerat
Copy link

I have the same issue. I found that manually syncing accounts remove the "Syncing accounts data..." until a page refresh, except for the investments account with holdings. The holding value is not updated since 21st of March with the synth values (I have token left)

@Ezri-Lin
Copy link

Hey, @zachgoll I have the same problem, I have migrated gradually according to the documentation of #2004 , but after restarting the service, I still get the message Syncing accounts data... What else can I do?

@zachgoll
Copy link
Collaborator

zachgoll commented Mar 25, 2025

@rubenRP thanks for the logs, those are helpful. Based on those logs and other comments, it appears that the syncs are working fine (indicating that Redis is working fine with the queue backend).

My guess is that there are some leftover Sync records (from before migration) that are causing this to evaluate to true:

def syncing?
Sync.where(
"(syncable_type = 'Family' AND syncable_id = ?) OR
(syncable_type = 'Account' AND syncable_id IN (SELECT id FROM accounts WHERE family_id = ? AND plaid_account_id IS NULL)) OR
(syncable_type = 'PlaidItem' AND syncable_id IN (SELECT id FROM plaid_items WHERE family_id = ?))",
id, id, id
).where(status: [ "pending", "syncing" ]).exists?
end

I'm wondering if we need to just push a simple migration that clears out "pending" syncs that are stale.

For those experiencing the issue, it would be helpful to see the following query results:

-- Query 1: sync counts
SELECT 
	status,
	COUNT(*) as sync_count
FROM syncs 
GROUP by status;

-- Query 2: most recent syncs
SELECT 
	syncable_type,
	last_ran_at,
	status 
FROM syncs
ORDER BY last_ran_at DESC;

@jakubkottnauer
Copy link
Contributor

jakubkottnauer commented Mar 25, 2025

I'm also experiencing this issue, here's my output for the queries. After opening Maybe for the first time today it started it off with several more syncing and pending syncs and then it stabilized on the values you see in the screenshot.

Image

@rubenRP
Copy link

rubenRP commented Mar 26, 2025

@zachgoll Attached the result of the queries:

Image
Image

@zachgoll
Copy link
Collaborator

@jakubkottnauer @rubenRP thanks for those query results. Very helpful.

This is exactly what I suspected—when everyone did the migration, there were likely "auto-syncs" that triggered to run, got queued up in the DB, then were unable to actually execute because the GoodJob process was no longer running.

So now, users have pending and syncing syncs (with no last_ran_at value) that will never get picked up by any job processor.

Deleting those sync records should fix this. I'm thinking we need to implement some "cleanup" mechanism so that when syncs are triggered daily, it clears out any "stale" syncs (i.e. syncs that are not completed, but are several days old)

@zachgoll zachgoll changed the title Bug: "Syncing accounts data..." stuck Bug: Syncs can become "stale" in the DB and are never cleared out Mar 26, 2025
@zachgoll zachgoll added the 2️⃣ Medium Priority Community contributions accepted, Maybe team only works on if there are no high priority items open label Mar 26, 2025
@jobchumo
Copy link

I also have an issue that might be related to this one. Accounts that are deleted keep showing "(deletion in progress...)" as shown in the screenshots below

Image

Image

@cl93a
Copy link

cl93a commented Apr 9, 2025

Same issues here

@LEstradioto
Copy link
Contributor

Hello,

While doing my recent PR #2081, I discovered a bug related to the Donut loading animation. The recent update to Tailwind v4 removed the keyframe animation from the Donut component, which is necessary to trigger the animationend event and subsequently remove the notification.

Although this issue is not directly related to the Syncing notification (since it doesn't use the Donut loading animation), I thought it was worth mentioning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2️⃣ Medium Priority Community contributions accepted, Maybe team only works on if there are no high priority items open
Projects
None yet
Development

No branches or pull requests