Skip to content

v1.9.5 — Detect CheckJC account lock + roll back v1.9.4 retry

Choose a tag to compare

@Gonzalez8 Gonzalez8 released this 22 May 18:29
· 37 commits to main since this release

Why this exists

A real CheckTime user's CheckJC account got hit with a per-user
lockout banner:

¡Error!: No se permitirán nuevos intentos de acceso para el usuario
47779708z hasta dentro de 2 meses, 30 días, 23 horas, 17 minutos.
Contacte con su supervisor o administrador de la plataforma.

This is a hard server-side ban that no client-side retry can recover
from. The contributing factor was v1.9.4's double-submit retry — each
scheduler tick was burning 2 failed logins instead of 1, and over the
course of a day that crossed whatever threshold CheckJC enforces.

What this release does

  1. Detect the per-user lock banner up-front. New
    CheckJCAccountLocked exception and a parser that matches "No se
    permitirán nuevos intentos…"
    . The login flow checks for it
    before filling the form, so a locked account never sends
    another submit and can't extend its own ban.

  2. Revert v1.9.4's retry. A rejected submit now raises
    immediately like in v1.9.3 and earlier. The 3-second pre-click
    hydration wait on lite bodies stays (it's harmless and helps the
    CSRF token finish loading).

  3. Better Telegram message when locked: ⛔ icon plus instructions
    to contact the CheckJC admin and disable auto-checkin in CheckTime
    while the ban lasts.

  4. Post-submit banner re-check. If the timeout fires, we re-read
    the page and surface CheckJCAccountLocked or CheckJCIPBlocked
    if the server set those, rather than the generic "rejected".

What you should do right now

  1. Contact your CheckJC supervisor / admin to unlock account
    47779708z. Nothing on our side can undo this.
  2. Disable auto-checkin for the affected user in CheckTime
    profile while waiting. That stops the scheduler from making it
    worse.
  3. Upgrade to v1.9.5 so this can't happen again for anyone else.

Image

ghcr.io/gonzalez8/checktime:1.9.5 / :1.9 / :latest

Upgrade

sed -i 's/^CHECK_TIME_VERSION=.*/CHECK_TIME_VERSION=1.9.5/' stack.env
docker compose pull app
docker compose up -d app

Log lines to expect

If the locked user is still on auto_checkin_enabled=True (you
forgot to disable), the next tick logs:

CheckJC account for 47779708z is locked. Remaining: 2 meses, 30 días, 23 horas...
The user must ask their CheckJC supervisor or admin to unlock the account.

and Telegram says:

⛔ Check in for Jose: tu cuenta de CheckJC está BLOQUEADA. ...

No further submits happen. Once unlocked, re-enable auto-checkin in
the profile and the next tick should fichar normally.