[Feature] Log gocardless rate limiting errors #1550

Closed
opened 2026-02-28 19:47:00 -06:00 by GiteaMirror · 3 comments
Owner

Originally created by @fira42073 on GitHub (Oct 29, 2024).

Verified feature request does not already exist?

  • I have searched and found no existing issue

💻

  • Would you like to implement this feature?

Pitch: what problem are you trying to solve?

When using gocardless sync, there is no way to know when to try to sync again:
image

My actualbudget instance runs on nomad using the following spec and does not produce any error logs for this screenshot attached above.

job "actual-server" {
  datacenters = ["dc1"]
  type        = "service"

  group "actual-server-group" {
    count = 1

    network {
      port "http" {
        to = 5006
      }
    }

    volume "actually-local" {
      type      = "host"
      read_only = false
      source    = "actually-local"
    }

    # volume "ceph-actual" {
    #   type            = "csi"
    #   attachment_mode = "file-system"
    #   access_mode     = "single-node-writer"
    #   read_only       = false
    #   source          = "ceph-actual"
    # }

    task "actual-server-task" {
      driver = "docker"

      config {
        image = "docker.io/actualbudget/actual-server:latest"
        ports = ["http"]
      }

      env {
        # Uncomment if you want to set environment variables
        # ACTUAL_HTTPS_KEY = "/data/selfhost.key"
        # ACTUAL_HTTPS_CERT = "/data/selfhost.crt"
        # ACTUAL_PORT = "5006"
        # ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB = "20"
        # ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB = "50"
        # ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB = "20"
      }

      volume_mount {
        # volume      = "ceph-actual"
        volume      = "actually-local"
        destination = "/data"
        read_only   = false
      }

      resources {
        cpu    = 500
        memory = 512
      }

      service {
        name = "actual-server"
        port = "http"

        tags = [
          "traefik.enable=true",
          "traefik.docker.network=proxy",

          "traefik.http.routers.actual.rule=Host(`actually.xxx`)",
          "traefik.http.routers.actual.entrypoints=websecure",

          "traefik.http.routers.actual.tls.certResolver=cloudflare",

          "traefik.http.routers.actual.middlewares=actual-https",

          "traefik.http.middlewares.actual-https.redirectscheme.scheme=https",
          "traefik.http.middlewares.actual-https.redirectscheme.permanent=true"
        ]

        check {
          type     = "http"
          path     = "/"
          interval = "10s"
          timeout  = "2s"
        }
      }

      restart {
        attempts = 5
        interval = "5m"
        delay    = "30s"
        mode     = "delay"
      }
    }
  }
}

Gocardless APIs claim to return that information
https://developer.gocardless.com/bank-account-data/endpoints

{
  "summary": "Rate limit exceeded",
  "detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
  "status_code": 429
}

Describe your ideal solution to this problem

No response

Teaching and learning

No response

Originally created by @fira42073 on GitHub (Oct 29, 2024). ### Verified feature request does not already exist? - [X] I have searched and found no existing issue ### 💻 - [X] Would you like to implement this feature? ### Pitch: what problem are you trying to solve? When using gocardless sync, there is no way to know when to try to sync again: ![image](https://github.com/user-attachments/assets/0889956b-f7d2-4bb7-85a2-96b826ca022b) My actualbudget instance runs on nomad using the following spec and does not produce any error logs for this screenshot attached above. ```hcl job "actual-server" { datacenters = ["dc1"] type = "service" group "actual-server-group" { count = 1 network { port "http" { to = 5006 } } volume "actually-local" { type = "host" read_only = false source = "actually-local" } # volume "ceph-actual" { # type = "csi" # attachment_mode = "file-system" # access_mode = "single-node-writer" # read_only = false # source = "ceph-actual" # } task "actual-server-task" { driver = "docker" config { image = "docker.io/actualbudget/actual-server:latest" ports = ["http"] } env { # Uncomment if you want to set environment variables # ACTUAL_HTTPS_KEY = "/data/selfhost.key" # ACTUAL_HTTPS_CERT = "/data/selfhost.crt" # ACTUAL_PORT = "5006" # ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB = "20" # ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB = "50" # ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB = "20" } volume_mount { # volume = "ceph-actual" volume = "actually-local" destination = "/data" read_only = false } resources { cpu = 500 memory = 512 } service { name = "actual-server" port = "http" tags = [ "traefik.enable=true", "traefik.docker.network=proxy", "traefik.http.routers.actual.rule=Host(`actually.xxx`)", "traefik.http.routers.actual.entrypoints=websecure", "traefik.http.routers.actual.tls.certResolver=cloudflare", "traefik.http.routers.actual.middlewares=actual-https", "traefik.http.middlewares.actual-https.redirectscheme.scheme=https", "traefik.http.middlewares.actual-https.redirectscheme.permanent=true" ] check { type = "http" path = "/" interval = "10s" timeout = "2s" } } restart { attempts = 5 interval = "5m" delay = "30s" mode = "delay" } } } } ``` Gocardless APIs claim to return that information https://developer.gocardless.com/bank-account-data/endpoints ```json { "summary": "Rate limit exceeded", "detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds", "status_code": 429 } ``` ### Describe your ideal solution to this problem _No response_ ### Teaching and learning _No response_
GiteaMirror added the feature label 2026-02-28 19:47:00 -06:00
Author
Owner

@github-actions[bot] commented on GitHub (Oct 29, 2024):

Thanks for sharing your idea!

This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).

The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+

Don’t forget to upvote the top comment with 👍!

@github-actions[bot] commented on GitHub (Oct 29, 2024): :sparkles: Thanks for sharing your idea! :sparkles: This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution). The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+ Don’t forget to upvote the top comment with 👍! <!-- feature-auto-close-comment -->
Author
Owner

@matt-fidd commented on GitHub (Jan 29, 2025):

This was added in https://github.com/actualbudget/actual/pull/3895

@matt-fidd commented on GitHub (Jan 29, 2025): This was added in https://github.com/actualbudget/actual/pull/3895
Author
Owner

@AWare commented on GitHub (Mar 21, 2025):

As the gocardless rate limit for free users keeps getting decreased, I think this error needs to be shown in the UI and potentially dropped from an error to a warning

@AWare commented on GitHub (Mar 21, 2025): As the gocardless rate limit for free users keeps getting decreased, I think this error needs to be shown in the UI and potentially dropped from an `error` to a `warning`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#1550