# Limits & errors

Bounded requests make results easier to review and protect the connected SolarSENS services.

## Request limits

| Query type             | Maximum window |
| ---------------------- | -------------- |
| Daily performance data | 366 days       |
| Returned rows          | 1,000          |
| Serialized response    | 1 MB           |

`get_plant_daily_performance` reads daily values only. It has no `interval` input. Use `get_plant_chart` for a one-day chart or `query_plant_5min` for stored five-minute Plant values.

If a result is truncated, the response says so. Ask for a smaller date range.

## Common errors

| Error                         | Meaning                                                                                                             | What to do                                                                        |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| Authentication required       | The Public API rejected the signed-in identity.                                                                     | Reconnect the assistant and sign in again.                                        |
| Authentication not configured | The connector's backend identity link is not set up, or your account has no recorded Plant scope.                   | Contact AVA Asia. Retrying will not fix this.                                     |
| Forbidden                     | The Plant ID is outside the connected account's access, or it does not exist.                                       | Confirm the Plant ID from a discovery call, or ask AVA Asia to review access.     |
| Invalid query                 | A date, interval, ID, or search text is not valid. This includes a `5min` interval request, which is not supported. | Give a complete daily date range, a valid Plant ID, and a non-empty search query. |
| Query limit exceeded          | The result would exceed 1,000 rows or 1 MB of serialized data.                                                      | Ask for a smaller date range.                                                     |
| Unavailable                   | The SolarSENS Public API could not be reached or rejected the request.                                              | Retry later or narrow the request.                                                |
| Upstream invalid response     | The Public API returned data the connector could not parse.                                                         | Retry later. Contact AVA Asia if it persists.                                     |

## Coverage and warnings

Every successful response sets `metadata.coverage` and `metadata.warnings`. The server sets them from the returned values only:

| Result                                                                                                                                             | Coverage      | Warning                 |
| -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ----------------------- |
| Daily performance, with no rows for the window                                                                                                     | `unavailable` | `NO_DATA_FOR_WINDOW`    |
| Daily performance, where a measured value is `null` in any row                                                                                     | `partial`     | `MISSING_VALUES`        |
| Daily performance, with every measured value present                                                                                               | `complete`    | none                    |
| Daily performance or Plant values, where a value exceeds its unit's limit (a percent above 100, daily irradiation above 12 kWh/m² or 12,000 Wh/m²) | unchanged     | `IMPLAUSIBLE_VALUES`    |
| Monitoring screen data (dashboard, chart, device, and string views)                                                                                | `complete`    | `COVERAGE_NOT_ASSESSED` |

A `null` value is missing, not zero. `unavailable` means no data for the window, not zero production. Monitoring screen data is passed through as SolarSENS returned it, and the server does not check it. The `complete` value on those responses is not a claim that the data is complete. Read `COVERAGE_NOT_ASSESSED` as "not checked". Each warning code is a stable string; a new code is a contract change. `IMPLAUSIBLE_VALUES` marks a value that is mislabelled or wrong upstream; the server does not correct it.

## Cloudflare Error 1010

Some HTTP libraries send a default `User-Agent` that Cloudflare blocks with "Error 1010", for example Python's `urllib`. This replaces the normal MCP error response with a Cloudflare block page. Not every non-browser client is affected: `curl` and Node's default client reach the MCP endpoint normally. Set a descriptive `User-Agent`, or use an MCP client, to avoid the block. See [Connection help](https://ai.solarsens.co/docs/troubleshooting.md) for the fix.
