# A project with screens can't be the Library

> Canonical HTML: https://screenrig.ai/problems/library-no-screens

HTTP 409 · `library_no_screens`

## What it means

The API answers with HTTP 409 Conflict and an `application/problem+json` document when the condition is A project with screens can't be the Library. The document's `type` member is `https://screenrig.ai/problems/library-no-screens`, the address of this page, and its `code` member is `library_no_screens`.

## What to do

To make a project the Library, pick one without screens or move or archive its screens first. Screens can't be added to the Library: pair them to another project of the organization, which uses the Library's media and playlists.

## Should you retry?

The `retryable` member appears only on HTTP 5xx problems, so this one has none. Follow the steps under What to do before sending the request again.

## Example response

Most routes answer with the error in the first entry of `errors`, and the document members `instance` and `request_id` beside it. The `type`, `code`, `title` and `status` of this problem type are fixed; `detail` varies per request, and `hint` is the registry default unless the handler sets a more specific one.

~~~http
HTTP/1.1 409 Conflict
Content-Type: application/problem+json

{
  "errors": [
    {
      "status": 409,
      "code": "library_no_screens",
      "type": "https://screenrig.ai/problems/library-no-screens",
      "title": "A project with screens can't be the Library",
      "detail": "What went wrong in this request.",
      "hint": "To make a project the Library, pick one without screens or move or archive its screens first. Screens can't be added to the Library: pair them to another project of the organization, which uses the Library's media and playlists."
    }
  ],
  "instance": "INSTANCE",
  "request_id": "REQUEST_ID",
  "server_time": "2026-01-01T00:00:00Z"
}
~~~

## In the API contract

The OpenAPI contract describes this problem in these words:

> The Library project holds no screens - a project with screens is library_no_screens, and the Library admits none afterwards. Setting a Library needs the library plan feature (Premium, Education, Enterprise; feature_not_in_plan otherwise); clearing one never does, and a Library kept after a downgrade keeps serving.

## Operations that name this problem

These operations name this problem in the API reference:

- [Dashboard Organizations Set Library](https://screenrig.ai/docs/api/dashboard#op-dashboardOrganizationsSetLibrary) — `PUT /api/organizations/{org_id}/library`

## Related problems

The contract mentions these problems alongside this one:

- [This feature is not in the project's plan](https://screenrig.ai/problems/feature-not-in-plan) — `feature_not_in_plan`

## Player action

This problem defines no Player action class. It belongs to a project, pairing or account flow that an agent or the dashboard drives.

## Reference

| Field | Value |
| --- | --- |
| Code | `library_no_screens` |
| HTTP status | `409 Conflict` |
| Type | `https://screenrig.ai/problems/library-no-screens` |
| Player action | `none` |

- [All problem types](https://screenrig.ai/problems)
- [API reference](https://screenrig.ai/docs/api#problems)
- [Problem registry YAML](https://screenrig.ai/docs/api/problems.yaml)
