OAuth flow fails when including crm.lists.read scope - HTTP 500 on list reads

Hi everyone,

We’re building a HubSpot integration and have hit a wall with OAuth scope configuration that we haven’t been able to resolve after extensive troubleshooting.

The issue:
We need to read from HubSpot segments/lists as part of our integration. When we add crm.lists.read to our AUTHORIZE_URL scopes, the OAuth authorization flow fails entirely — users cannot complete sign-in.

If we remove crm.lists.read from the scopes, OAuth works fine and users can authenticate successfully. However, any API call to read from lists then returns:

Hubspot::Crm::Lists::ApiError HTTP status code: 500

This tells us the scope is required, but including it in the authorization URL breaks the flow.

What we’ve tried:

Nothing has resolved it.

Questions:

  1. Is there anything special about requesting crm.lists.read during the OAuth flow compared to other scopes?
  2. Are there prerequisites or additional permissions that need to be configured in the app settings before this scope can be included?
  3. Is a 500 from the Lists API always indicative of a missing scope, or could it be something else?

Any help or direction would be hugely appreciated. Happy to share more details if needed.

Hi @ELaunchNotes thanks for laying this out so thoroughly! Tagging some of our top contributors who may be able to help here: @ChrisoKlepke @HubSpot_Corey and @louischausse1 @Mike_Eastwood

A few things worth checking while you wait for more input:

1. Make sure crm.lists.read is added under your app’s required scopes in the App Settings (not just in the authorization URL). If the scope isn’t listed in your app config, the OAuth flow may reject it.

2. A 500 from the Lists API isn’t always a scope issue; it can also indicate a malformed request or an internal HubSpot error. It’s worth checking the full error response body for more details (feel free to paste the full error into this thread so we can take a deeper look)

In the meantime, feel free to share any additional details about your app config or the exact error response you’re seeing!
Cassie, Community Manager