> For the complete documentation index, see [llms.txt](https://docs.tryterra.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tryterra.co/faq/help-topics/data-api-sdk/api-endpoints-errors-and-migrations/widget-session-providers-string-format.md).

# Why does generateWidgetSession return a 500?

**For `generateWidgetSession`, the `providers` field must be a single comma-separated string** (for example, `"GARMIN,FITBIT,OURA"`), not a JSON array or list. Passing an array triggers a 500.

This applies to the SDKs too: newer Python SDK versions changed the `providers` parameter from a list of strings to a comma-separated string.

One other cause to rule out: a **500 with a `null` message can also indicate an invalid `dev-id`/API-key combination** (often env vars not loading), so log credential presence before the call.
