[Bug]: Cannot get banks from GoCardless #895

Closed
opened 2026-02-28 19:24:23 -06:00 by GiteaMirror · 11 comments
Owner

Originally created by @tantonini on GitHub (Jan 26, 2024).

Verified issue does not already exist?

  • I have searched and found no existing issue
  • I have checked my server logs and could not see any errors there
  • I will be attaching my server logs to this issue
  • I will be attaching my client-side (browser) logs to this issue
  • I understand that this issue will be automatically closed if insufficient information is provided

What happened?

Hello,
When I try to connect to GoCardless, I have the following issue:
image

My credentials are normally ok, I was able to get the banks from the terminal command line on my server.

What error did you receive?

    at re (file:///home/thomas/actual-server/node_modules/nordigen-node/dist/index.esm.js:13:914)
    at IncomingMessage.<anonymous> (file:///home/thomas/actual-server/node_modules/nordigen-node/dist/index.esm.js:17:16270)
    at IncomingMessage.emit (node:events:525:35)
    at endReadableNT (node:internal/streams/readable:1359:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false
    },
    adapter: [ 'xhr', 'http' ],
    transformRequest: [ [Function (anonymous)] ],
    transformResponse: [ [Function (anonymous)] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: T [AxiosHeaders] {
      Accept: 'application/json',
      'Content-Type': 'application/json',
      'User-Agent': 'Nordigen-Node-v2',
      'Content-Length': '36',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    method: 'post',
    url: URL {
      href: 'https://ob.gocardless.com/api/v2/token/new/',
      origin: 'https://ob.gocardless.com',
      protocol: 'https:',
      username: '',
      password: '',
      host: 'ob.gocardless.com',
      hostname: 'ob.gocardless.com',
      port: '',
      pathname: '/api/v2/token/new/',
      search: '',
      searchParams: URLSearchParams {},
      hash: ''
    },
    data: '{"secret_key":null,"secret_id":null}'
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: false,
    _last: true,
    chunkedEncoding: false,
    shouldKeepAlive: false,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: '36',
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: false,
    socket: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'ob.gocardless.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 10,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'ob.gocardless.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _maxListeners: undefined,
      _writableState: [WritableState],
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular *1],
      [Symbol(res)]: [TLSWrap],
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(async_id_symbol)]: 2404,
      [Symbol(kHandle)]: [TLSWrap],
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kSetNoDelay)]: false,
      [Symbol(kSetKeepAlive)]: true,
      [Symbol(kSetKeepAliveInitialDelay)]: 60,
      [Symbol(kBytesRead)]: 0,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(connect-options)]: [Object]
    },
    _header: 'POST /api/v2/token/new/ HTTP/1.1\r\n' +
      'Accept: application/json\r\n' +
      'Content-Type: application/json\r\n' +
      'User-Agent: Nordigen-Node-v2\r\n' +
      'Content-Length: 36\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: ob.gocardless.com\r\n' +
      'Connection: close\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 443,
      protocol: 'https:',
      options: [Object: null prototype],
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype],
      freeSockets: [Object: null prototype] {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    path: '/api/v2/token/new/',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      _events: [Object: null prototype],
      _eventsCount: 4,
      _maxListeners: undefined,
      socket: [TLSSocket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 400,
      statusMessage: 'Bad Request',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      responseUrl: 'https://ob.gocardless.com/api/v2/token/new/',
      redirects: [],
      [Symbol(kCapture)]: false,
      [Symbol(kHeaders)]: [Object],
      [Symbol(kHeadersCount)]: 22,
      [Symbol(kTrailers)]: null,
      [Symbol(kTrailersCount)]: 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'ob.gocardless.com',
    protocol: 'https:',
    _redirectable: Writable {
      _writableState: [WritableState],
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 36,
      _requestBodyBuffers: [],
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://ob.gocardless.com/api/v2/token/new/',
      [Symbol(kCapture)]: false
    },
    [Symbol(kCapture)]: false,
    [Symbol(kBytesWritten)]: 0,
    [Symbol(kEndCalled)]: true,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    [Symbol(errored)]: null,
    [Symbol(kUniqueHeaders)]: null
  },
  response: {
    status: 400,
    statusText: 'Bad Request',
    headers: T [AxiosHeaders] {
      date: 'Fri, 26 Jan 2024 10:11:56 GMT',
      'content-type': 'application/json',
      'content-length': '108',
      connection: 'close',
      server: 'nginx',
      vary: 'Accept, Accept-Language',
      allow: 'POST, OPTIONS',
      'x-frame-options': 'DENY',
      'content-language': 'en',
      'x-content-type-options': 'nosniff',
      'referrer-policy': 'same-origin'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [T [AxiosHeaders]],
      method: 'post',
      url: [URL],
      data: '{"secret_key":null,"secret_id":null}'
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: '36',
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: false,
      socket: [TLSSocket],
      _header: 'POST /api/v2/token/new/ HTTP/1.1\r\n' +
        'Accept: application/json\r\n' +
        'Content-Type: application/json\r\n' +
        'User-Agent: Nordigen-Node-v2\r\n' +
        'Content-Length: 36\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: ob.gocardless.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      path: '/api/v2/token/new/',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'ob.gocardless.com',
      protocol: 'https:',
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(kEndCalled)]: true,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype],
      [Symbol(errored)]: null,
      [Symbol(kUniqueHeaders)]: null
    },
    data: { secret_id: [Array], secret_key: [Array], status_code: 400 }
  }
}

Where are you hosting Actual?

Locally via Yarn

What browsers are you seeing the problem on?

Firefox

Operating System

Linux

Originally created by @tantonini on GitHub (Jan 26, 2024). ### Verified issue does not already exist? - [X] I have searched and found no existing issue ### Is this related to GoCardless, Simplefin or another bank-sync provider? - [ ] I have checked my server logs and could not see any errors there - [X] I will be attaching my server logs to this issue - [ ] I will be attaching my client-side (browser) logs to this issue - [ ] I understand that this issue will be automatically closed if insufficient information is provided ### What happened? Hello, When I try to connect to GoCardless, I have the following issue: ![image](https://github.com/actualbudget/actual/assets/20204549/f212bc1f-9b52-436f-932a-1badabdbff97) My credentials are normally ok, I was able to get the banks from the terminal command line on my server. ### What error did you receive? ```Error /gocardless/get-banks h [AxiosError]: Request failed with status code 400 at re (file:///home/thomas/actual-server/node_modules/nordigen-node/dist/index.esm.js:13:914) at IncomingMessage.<anonymous> (file:///home/thomas/actual-server/node_modules/nordigen-node/dist/index.esm.js:17:16270) at IncomingMessage.emit (node:events:525:35) at endReadableNT (node:internal/streams/readable:1359:12) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { code: 'ERR_BAD_REQUEST', config: { transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }, adapter: [ 'xhr', 'http' ], transformRequest: [ [Function (anonymous)] ], transformResponse: [ [Function (anonymous)] ], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: { FormData: [Function], Blob: [class Blob] }, validateStatus: [Function: validateStatus], headers: T [AxiosHeaders] { Accept: 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'Nordigen-Node-v2', 'Content-Length': '36', 'Accept-Encoding': 'gzip, compress, deflate, br' }, method: 'post', url: URL { href: 'https://ob.gocardless.com/api/v2/token/new/', origin: 'https://ob.gocardless.com', protocol: 'https:', username: '', password: '', host: 'ob.gocardless.com', hostname: 'ob.gocardless.com', port: '', pathname: '/api/v2/token/new/', search: '', searchParams: URLSearchParams {}, hash: '' }, data: '{"secret_key":null,"secret_id":null}' }, request: <ref *1> ClientRequest { _events: [Object: null prototype] { abort: [Function (anonymous)], aborted: [Function (anonymous)], connect: [Function (anonymous)], error: [Function (anonymous)], socket: [Function (anonymous)], timeout: [Function (anonymous)], finish: [Function: requestOnFinish] }, _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: false, _last: true, chunkedEncoding: false, shouldKeepAlive: false, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: true, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: '36', _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: false, socket: TLSSocket { _tlsOptions: [Object], _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, secureConnecting: false, _SNICallback: null, servername: 'ob.gocardless.com', alpnProtocol: false, authorized: true, authorizationError: null, encrypted: true, _events: [Object: null prototype], _eventsCount: 10, connecting: false, _hadError: false, _parent: null, _host: 'ob.gocardless.com', _closeAfterHandlingError: false, _readableState: [ReadableState], _maxListeners: undefined, _writableState: [WritableState], allowHalfOpen: false, _sockname: null, _pendingData: null, _pendingEncoding: '', server: undefined, _server: null, ssl: [TLSWrap], _requestCert: true, _rejectUnauthorized: true, parser: null, _httpMessage: [Circular *1], [Symbol(res)]: [TLSWrap], [Symbol(verified)]: true, [Symbol(pendingSession)]: null, [Symbol(async_id_symbol)]: 2404, [Symbol(kHandle)]: [TLSWrap], [Symbol(lastWriteQueueSize)]: 0, [Symbol(timeout)]: null, [Symbol(kBuffer)]: null, [Symbol(kBufferCb)]: null, [Symbol(kBufferGen)]: null, [Symbol(kCapture)]: false, [Symbol(kSetNoDelay)]: false, [Symbol(kSetKeepAlive)]: true, [Symbol(kSetKeepAliveInitialDelay)]: 60, [Symbol(kBytesRead)]: 0, [Symbol(kBytesWritten)]: 0, [Symbol(connect-options)]: [Object] }, _header: 'POST /api/v2/token/new/ HTTP/1.1\r\n' + 'Accept: application/json\r\n' + 'Content-Type: application/json\r\n' + 'User-Agent: Nordigen-Node-v2\r\n' + 'Content-Length: 36\r\n' + 'Accept-Encoding: gzip, compress, deflate, br\r\n' + 'Host: ob.gocardless.com\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: Agent { _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, defaultPort: 443, protocol: 'https:', options: [Object: null prototype], requests: [Object: null prototype] {}, sockets: [Object: null prototype], freeSockets: [Object: null prototype] {}, keepAliveMsecs: 1000, keepAlive: false, maxSockets: Infinity, maxFreeSockets: 256, scheduling: 'lifo', maxTotalSockets: Infinity, totalSocketCount: 1, maxCachedSessions: 100, _sessionCache: [Object], [Symbol(kCapture)]: false }, socketPath: undefined, method: 'POST', maxHeaderSize: undefined, insecureHTTPParser: undefined, path: '/api/v2/token/new/', _ended: true, res: IncomingMessage { _readableState: [ReadableState], _events: [Object: null prototype], _eventsCount: 4, _maxListeners: undefined, socket: [TLSSocket], httpVersionMajor: 1, httpVersionMinor: 1, httpVersion: '1.1', complete: true, rawHeaders: [Array], rawTrailers: [], aborted: false, upgrade: false, url: '', method: null, statusCode: 400, statusMessage: 'Bad Request', client: [TLSSocket], _consuming: false, _dumped: false, req: [Circular *1], responseUrl: 'https://ob.gocardless.com/api/v2/token/new/', redirects: [], [Symbol(kCapture)]: false, [Symbol(kHeaders)]: [Object], [Symbol(kHeadersCount)]: 22, [Symbol(kTrailers)]: null, [Symbol(kTrailersCount)]: 0 }, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'ob.gocardless.com', protocol: 'https:', _redirectable: Writable { _writableState: [WritableState], _events: [Object: null prototype], _eventsCount: 3, _maxListeners: undefined, _options: [Object], _ended: true, _ending: true, _redirectCount: 0, _redirects: [], _requestBodyLength: 36, _requestBodyBuffers: [], _onNativeResponse: [Function (anonymous)], _currentRequest: [Circular *1], _currentUrl: 'https://ob.gocardless.com/api/v2/token/new/', [Symbol(kCapture)]: false }, [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kEndCalled)]: true, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype] { accept: [Array], 'content-type': [Array], 'user-agent': [Array], 'content-length': [Array], 'accept-encoding': [Array], host: [Array] }, [Symbol(errored)]: null, [Symbol(kUniqueHeaders)]: null }, response: { status: 400, statusText: 'Bad Request', headers: T [AxiosHeaders] { date: 'Fri, 26 Jan 2024 10:11:56 GMT', 'content-type': 'application/json', 'content-length': '108', connection: 'close', server: 'nginx', vary: 'Accept, Accept-Language', allow: 'POST, OPTIONS', 'x-frame-options': 'DENY', 'content-language': 'en', 'x-content-type-options': 'nosniff', 'referrer-policy': 'same-origin' }, config: { transitional: [Object], adapter: [Array], transformRequest: [Array], transformResponse: [Array], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: [Object], validateStatus: [Function: validateStatus], headers: [T [AxiosHeaders]], method: 'post', url: [URL], data: '{"secret_key":null,"secret_id":null}' }, request: <ref *1> ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: false, _last: true, chunkedEncoding: false, shouldKeepAlive: false, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: true, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: '36', _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: false, socket: [TLSSocket], _header: 'POST /api/v2/token/new/ HTTP/1.1\r\n' + 'Accept: application/json\r\n' + 'Content-Type: application/json\r\n' + 'User-Agent: Nordigen-Node-v2\r\n' + 'Content-Length: 36\r\n' + 'Accept-Encoding: gzip, compress, deflate, br\r\n' + 'Host: ob.gocardless.com\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'POST', maxHeaderSize: undefined, insecureHTTPParser: undefined, path: '/api/v2/token/new/', _ended: true, res: [IncomingMessage], aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'ob.gocardless.com', protocol: 'https:', _redirectable: [Writable], [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kEndCalled)]: true, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype], [Symbol(errored)]: null, [Symbol(kUniqueHeaders)]: null }, data: { secret_id: [Array], secret_key: [Array], status_code: 400 } } } ``` ### Where are you hosting Actual? Locally via Yarn ### What browsers are you seeing the problem on? Firefox ### Operating System Linux
GiteaMirror added the bug label 2026-02-28 19:24:23 -06:00
Author
Owner

@Kidglove57 commented on GitHub (Jan 26, 2024):

I'm not sure if this is the same issue but I am getting an "Internal Error" in Actual when trying to sync Starling Bank via Go Cardless

Other relevant info:

  1. I am using "Edge". All is fine if using "Latest"
  2. American Express (GB) syncs fine.
  3. I do not have the experiment Simple Fin enabled
  4. I just imported my file from "Latest" to "Edge" today. Is there something in the latest Edge that may have broken this?
@Kidglove57 commented on GitHub (Jan 26, 2024): I'm not sure if this is the same issue but I am getting an "Internal Error" in Actual when trying to sync Starling Bank via Go Cardless Other relevant info: 1) I am using "Edge". All is fine if using "Latest" 2) American Express (GB) syncs fine. 3) I do not have the experiment Simple Fin enabled 4) I just imported my file from "Latest" to "Edge" today. Is there something in the latest Edge that may have broken this?
Author
Owner

@Kidglove57 commented on GitHub (Jan 26, 2024):

I see this on Fly - so looks like a migration issue re edge release (if I read this correctly):
2024-01-26T19:18:56.094 app[3d8dde7ae954e8] lhr [info] Rejection: Error: Missing migration file: 1702667624000-rename-nordigen-secrets.

@Kidglove57 commented on GitHub (Jan 26, 2024): I see this on Fly - so looks like a migration issue re edge release (if I read this correctly): 2024-01-26T19:18:56.094 app[3d8dde7ae954e8] lhr [info] Rejection: Error: Missing migration file: 1702667624000-rename-nordigen-secrets.
Author
Owner

@twk3 commented on GitHub (Jan 29, 2024):

I see this on Fly - so looks like a migration issue re edge release (if I read this correctly): 2024-01-26T19:18:56.094 app[3d8dde7ae954e8] lhr [info] Rejection: Error: Missing migration file: 1702667624000-rename-nordigen-secrets.

I'm not seeing this error when updating from latest to edge. The new migration has been in place in edge for over two weeks.

@Kidglove57 can you try using the most recent tag from: https://hub.docker.com/r/actualbudget/actual-server/tags that is in the format sha-xxxxx ? It should match the edge tag exactly, but I wonder if fly.io isn't updating the edge tag once they have it downloaded. So you might be running an old edge version. I suspect they may have a special condition for :latest tags that doesn't work for edge.

@twk3 commented on GitHub (Jan 29, 2024): > I see this on Fly - so looks like a migration issue re edge release (if I read this correctly): 2024-01-26T19:18:56.094 app[3d8dde7ae954e8] lhr [info] Rejection: Error: Missing migration file: 1702667624000-rename-nordigen-secrets. I'm not seeing this error when updating from latest to edge. The new migration has been in place in edge for over two weeks. @Kidglove57 can you try using the most recent tag from: https://hub.docker.com/r/actualbudget/actual-server/tags that is in the format `sha-xxxxx` ? It should match the edge tag exactly, but I wonder if fly.io isn't updating the edge tag once they have it downloaded. So you might be running an old edge version. I suspect they may have a special condition for :latest tags that doesn't work for edge.
Author
Owner

@Kidglove57 commented on GitHub (Jan 29, 2024):

Thanks @twk3 - appreciate your help. I've now tried that. I cannot see any migration errors in the fly log. However, I am getting the same error message when trying to sync with Go Cardless. I now get this error whatever tag version I use (snd have done since moving from latest).

"There was an internal error please get in touch etc"

I now get this error even if I try to go back to "latest".
EDIT
I have just deleted my Actual file completely from my Fly machine. I then used Fly Deploy to load the l”atest” tag but the deployment stuck again and would not complete. I had to revert to the “edge” tag whereupon things worked again EXCEPT my Starling Bank sync via Go Cardless.

Further update:
In the end I carried on with the Edge version on Fly. I delinked my Starling account from Go Cardless. I then remade the connection which this time synced correctly.
I have not dared try and revert to the “latest” tag!

@Kidglove57 commented on GitHub (Jan 29, 2024): Thanks @twk3 - appreciate your help. I've now tried that. I cannot see any migration errors in the fly log. However, I am getting the same error message when trying to sync with Go Cardless. I now get this error whatever tag version I use (snd have done since moving from latest). "There was an internal error please get in touch etc" I now get this error even if I try to go back to "latest". EDIT I have just deleted my Actual file completely from my Fly machine. I then used Fly Deploy to load the l”atest” tag but the deployment stuck again and would not complete. I had to revert to the “edge” tag whereupon things worked again EXCEPT my Starling Bank sync via Go Cardless. Further update: In the end I carried on with the Edge version on Fly. I delinked my Starling account from Go Cardless. I then remade the connection which this time synced correctly. I have not dared try and revert to the “latest” tag!
Author
Owner

@twk3 commented on GitHub (Jan 30, 2024):

I then used Fly Deploy to load the l”atest” tag but the deployment stuck again and would not complete.

@Kidglove57 actual keeps a .migrate hidden file in your data directory to track which migrations you have applied. Unfortunately it also prevents you from rolling back when there was migrations in a new version that successfully ran. If you are starting fresh (no budget files on the server), you can ssh into the machine and delete the .migrate file.

But if you just wait another week, the next released version will include the migration that is likely blocking you anyways and you should be able to swap to it without issue.

@twk3 commented on GitHub (Jan 30, 2024): > I then used Fly Deploy to load the l”atest” tag but the deployment stuck again and would not complete. @Kidglove57 actual keeps a `.migrate` hidden file in your data directory to track which migrations you have applied. Unfortunately it also prevents you from rolling back when there was migrations in a new version that successfully ran. If you are starting fresh (no budget files on the server), you can ssh into the machine and delete the `.migrate` file. But if you just wait another week, the next released version will include the migration that is likely blocking you anyways and you should be able to swap to it without issue.
Author
Owner

@Kidglove57 commented on GitHub (Jan 30, 2024):

But if you just wait another week, the next released version will include the migration that is likely blocking you anyways and you should be able to swap to it without issue.

Yes that’s makes sense. As a non technical person who dabbles, my observation would be that there is no obvious “flag” when an Edgecupdate includes a migration. But then being non technical (and more and more confused by most of the questions on Discord) I probably ought to play safe and not use Edge!! I keep a daily back up regardless.

Alls well that ends well!

@Kidglove57 commented on GitHub (Jan 30, 2024): _But if you just wait another week, the next released version will include the migration that is likely blocking you anyways and you should be able to swap to it without issue_. Yes that’s makes sense. As a non technical person who dabbles, my observation would be that there is no obvious “flag” when an Edgecupdate includes a migration. But then being non technical (and more and more confused by most of the questions on Discord) I probably ought to play safe and not use Edge!! I keep a daily back up regardless. Alls well that ends well!
Author
Owner

@MatissJanis commented on GitHub (Feb 1, 2024):

There are two issues being discussed here:

  1. (the original bug report): this issue will go away with the v24.2.0 release; you currently are running v24.1.0 of actual-server with edge (master) of actual (client). And because of the version mis-match there are some missing migrations that are causing problems. But again: this will go away with v24.2.0 coming in a few days, so nothing to worry about here..
  2. gocardless sync stopping to work for some accounts: should be solved by #2308
@MatissJanis commented on GitHub (Feb 1, 2024): There are two issues being discussed here: 1. (the original bug report): this issue will go away with the v24.2.0 release; you currently are running `v24.1.0` of `actual-server` with `edge` (`master`) of `actual` (client). And because of the version mis-match there are some missing migrations that are causing problems. But again: this will go away with v24.2.0 coming in a few days, so nothing to worry about here.. 2. gocardless sync stopping to work for some accounts: should be solved by #2308
Author
Owner

@MatissJanis commented on GitHub (Feb 2, 2024):

v24.2.0 is out. All issues should now be addressed.

@MatissJanis commented on GitHub (Feb 2, 2024): v24.2.0 is out. All issues should now be addressed.
Author
Owner

@tantonini commented on GitHub (Feb 3, 2024):

Yes right, everything is fixed. Thanks a lot :)

@tantonini commented on GitHub (Feb 3, 2024): Yes right, everything is fixed. Thanks a lot :)
Author
Owner

@Edgaras91 commented on GitHub (Feb 10, 2024):

Not working for me on v24.2.0.
Have clean local install, bank successfully syncs with GoCardless (can see bank in GoCardless website) but nothing happens on the localhost:5006, faced with same screenshot as in the original question. The console logs do display below after successful linking, but again, nothing changes on the actual app, no account added, sync button does nothing.

Available account properties for new institution integration { account: '{"resourceId":"10000...

@Edgaras91 commented on GitHub (Feb 10, 2024): Not working for me on v24.2.0. Have clean local install, bank successfully syncs with GoCardless (can see bank in GoCardless website) but nothing happens on the localhost:5006, faced with same screenshot as in the original question. The console logs do display below after successful linking, but again, nothing changes on the actual app, no account added, sync button does nothing. `Available account properties for new institution integration { account: '{"resourceId":"10000...`
Author
Owner

@JigSawFr commented on GitHub (Mar 11, 2024):

Not working for me on v24.2.0. Have clean local install, bank successfully syncs with GoCardless (can see bank in GoCardless website) but nothing happens on the localhost:5006, faced with same screenshot as in the original question. The console logs do display below after successful linking, but again, nothing changes on the actual app, no account added, sync button does nothing.

Available account properties for new institution integration { account: '{"resourceId":"10000...

Facing the same error/behavior on my side

@JigSawFr commented on GitHub (Mar 11, 2024): > Not working for me on v24.2.0. Have clean local install, bank successfully syncs with GoCardless (can see bank in GoCardless website) but nothing happens on the localhost:5006, faced with same screenshot as in the original question. The console logs do display below after successful linking, but again, nothing changes on the actual app, no account added, sync button does nothing. > > `Available account properties for new institution integration { account: '{"resourceId":"10000...` Facing the same error/behavior on my side
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#895