Describe the problem/error/question
I am using generic Oauth 2.0 credential for Teamleader Orbit. Everything works except that the credentials doesn’t auto refresh the token when expired.
What is the error message (if any)?
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Share the output returned by the last node
Information on your n8n setup
- n8n version:
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app): n8n cloud
- Operating system:
Welcome to the community @Joseph_Roxas
Can you share:
-
Exact error message when token expires?
-
n8n version (self-hosted or cloud)?
-
Screenshot of your OAuth2 credential config (pls hide secrets)?
-
Does the initial OAuth connection work, or does it fail immediately?
Hi @Joseph_Roxas
Welcome to the n8n community!
The behavior you’re describing happens when Teamleader Orbit isn’t issuing or isn’t allowing storage of a refresh_token in the OAuth2 flow.
The root cause
is that Teamleader Orbit isn’t returning a refresh_token because either the OAuth app isn’t requesting “offline” access or equivalent, there are required parameters missing in the authorization request, or Teamleader uses an OAuth model where refresh isn’t supported or is limited. This pattern is common and has been seen with Zoho, Upwork, Dropbox, Google apps in test mode, and others.
What you should validate now
First, verify if the refresh_token actually exists. After connecting the OAuth2 credential, go to Credentials, then Generic OAuth2, reauthorize the app, and check if the saved data contains something like "refresh_token": "xxxx". If there’s no refresh_token, n8n is working correctly and the problem is that Teamleader isn’t delivering a refresh token. Second, adjust the authorization parameters if applicable. In the Generic OAuth2 Credential under Auth URI Query Parameters, try including access_type=offline and prompt=consent. Keep in mind these parameters aren’t universal and only work if Teamleader supports something equivalent. After that, reconnect the credential and don’t reuse old tokens.
The recommended workaround, which is a standard pattern in the n8n community, is to create a separate workflow that manually calls Teamleader’s token endpoint to renew the access token and stores it in a database, Static Data, Redis, or similar, then use that token manually in HTTP Request nodes. This pattern is widely used when the provider doesn’t support standard refresh tokens.
Hi @Brighto,
Exact error message when token expires?
-
n8n version (self-hosted or cloud)?
-
Screenshot of your OAuth2 credential config (pls hide secrets)?
-
Does the initial OAuth connection work, or does it fail immediately?
- It definitely works but after 24 hours, the token expires and the workflow fails
I’ll try and get back with you
1 Like
your configuration looks correct @Joseph_Roxas
Likely issues maybe that teamleader is not returning a Refresh Token, so check if a refresh token exists in your Teamleader credential.
If there’s no refresh_token, that’s your problem. Teamleader might require specific scopes or settings to issue one.
Also, check Teamleader’s documentation, they might require an offline_access scope or similar to get a refresh token:
Try adding to your Scope field:
offline_access
or check their docs for the exact scope name.
If everything is correct but still fails, email: [email protected] and provide your credential config, error message after 24 hours, and mention it’s a Business tier issue.
Let me know how it goes @Joseph_Roxas