> For the complete documentation index, see [llms.txt](https://chameleoncloud.gitbook.io/chi-in-a-box/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chameleoncloud.gitbook.io/chi-in-a-box/operations/runbooks/cronjobnorecentsuccess.md).

# Cron Job No Recent Success

**Summary**: A periodic cron job has not had a successful run recently.

**Consequences**: Periodic jobs serve many purposes so the impact depends on the job, though typically is limited in user impact. Most jobs are responsible for cleaning up testbed state; over time if these jobs are left failing, users may experience nodes that cannot be provisioned. Jobs are also involved in creating backups of data, and if they stop working, the ability to restore from backups diminishes.

#### Possible causes

**Authentication errors**: Many jobs interface with OpenStack APIs, and user a special user for this. If this user is changed or disabled, jobs can fail.

1. Try running the failing job manually (see its entry via `crontab -l`) to see what type of error is generated. If it is an authentication error, see if the user (defined as the `hammers_openstack_user` var) is disabled/missing.

**Runtime error**: A job may encounter input is unfamiliar with. The code for the job will have to be fixed; an issue should be raised for this.

#### Job-specific runbooks

**`keycloak_tas_sync`**

If the sync is running for a while but then encounters a 401 unauthorized error, it can be because the service account's token has too short of an expiration. The current configured TTL is in the configuration for the "user-group-import" client in the master Keycloak realm as an advanced setting (Access Token Lifespan).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://chameleoncloud.gitbook.io/chi-in-a-box/operations/runbooks/cronjobnorecentsuccess.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
