Вы дописываете фичу в Claude Code. Диф показывает +2,148 −14, ветка — main, и остаётся лишь нажать "Create PR" — и тут в верхней части экрана появляется красный баннер:

⚠ Некорректный запрос
Не удалось проверить статус pull request.
Эта информация может быть устаревшей.

Самое неприятное в том, что кнопка "Create PR" по-прежнему на месте, но вы больше не можете понять, в каком состоянии находится PR: не создан, уже открыт или уже смержен. Внезапно и совершенно независимо от ваших изменений в коде невидимым становится только одно — "как эта ветка выглядит на GitHub прямо сейчас".

Сразу о главном: в большинстве случаев это не фатальная ошибка. Обычно Claude Code просто обратился к GitHub, чтобы получить актуальное состояние PR, и эта единственная попытка не удалась. Причина почти всегда в одном из двух: либо соединение/аутентификация с GitHub (часто через gh CLI) на мгновение не прошли, либо у этой ветки попросту ещё нет PR / она не запушена в удалённый репозиторий. В этой статье мы разберём механизм, 5 основных причин, порядок диагностики, шпаргалку по командам и то, как не допустить повторения.

CLAUDE CODE · СТАТУС PR

"Не удалось проверить статус PR" в двух словах

— Claude Code запросил состояние у GitHub; этот единственный запрос не удался

СИМПТОМ
Состояние PR неизвестно
создан или нет — отображение устаревает
ПРИЧИНА
GitHub недоступен
gh auth истёк или нет push/PR
ПЕРВЫЙ ШАГ
gh auth status
проверьте, жива ли аутентификация

Суть: это не "проблема кода", а "проблема связи/аутентификации с GitHub".
Вашу работу (генерацию кода, коммиты) обычно можно продолжать. Срочно начинать новую сессию не нужно.

1. Что на самом деле означает эта ошибка

Если читать буквально, сообщение говорит: "Я не смог проверить, в каком состоянии сейчас находится pull request для этой ветки на GitHub, поэтому показанная на экране информация может быть устаревшей".

Важно понять, что две вещи НЕ произошли. Во-первых, ваш код и ваш диф не сломаны — изменения +2,148 −14 по-прежнему на месте в рабочем дереве. Во-вторых, здесь не сказано "не удалось создать PR". Это предупреждение со стороны чтения: "В качестве подготовки к созданию PR я попытался прочитать текущее состояние PR (не создан / открыт / смержен / закрыт) и не смог".

Иными словами, этот баннер — сообщение типа "не удалось синхронизировать", и оно, как правило, временное. Моё мнение: когда вы видите этот красный баннер, в первую очередь стоит заподозрить не "ваш код", а "состояние соединения с GitHub" — а именно эти три момента: не истекла ли аутентификация, доступна ли сеть и находится ли вообще ветка в состоянии, где PR может существовать (запушена ли в удалённый репозиторий).

2. Как устроено: как Claude Code видит ваш PR

Почему вообще может возникнуть "не удалось проверить"? Потому что Claude Code не хранит состояние PR внутри себя. Истина о PR живёт только на серверах GitHub. Каждый раз Claude Code обращается с запросом к GitHub — "каково состояние PR для этой ветки?" — и отражает ответ в значке и кнопке на экране.

Для этого запроса Claude Code из командной строки в качестве базового пути использует официальный GitHub CLI (команду gh). gh сам хранит токен аутентификации GitHub (в ~/.config/gh/hosts.yml и т. п.) и выполняет вызовы API от вашего имени. С точки зрения Claude Code состояние PR удаётся получить корректно только тогда, когда сходятся все эти условия: "gh аутентифицирован, сеть доступна, и нужная ветка существует в удалённом репозитории".

Замечание для точности

Внутренние детали того, как GUI Claude Code обновляет значок PR (интервал опроса, стратегия кеширования, логика отображения ошибок), официально не задокументированы. Точно известно одно: "для получения состояния PR требуется действующее соединение с GitHub", и на практике вся диагностика сводится к аутентификации и доступности GitHub. Способы исправления в этой статье опираются именно на эту достоверную часть.

3. Почему это происходит — 5 основных причин

Пути, которые приводят к "не удалось проверить статус PR", можно сгруппировать примерно в 5. Чем выше в списке — тем чаще встречается.

5 ОСНОВНЫХ ПРИЧИН

5 причин, по которым не удаётся получить состояние PR

ПРИЧИНА 1 · Аутентификация истекла (самое частое)
Токен gh истёк, отозван или вы не вошли в систему. Часто бывает после перезагрузки или обновления ОС. gh auth status мгновенно это показывает.
ПРИЧИНА 2 · Нет PR / не запушено
Ветки нет в удалённом репозитории, либо вы не создали PR. Получать просто нечего — нет никакого "состояния". Сначала git push.
ПРИЧИНА 3 · Сеть / прокси
Корпоративный прокси, VPN, офлайн или DNS приводят к тому, что api.github.com недоступен. Если другие операции Git тоже не проходят — почти наверняка дело в этом.
ПРИЧИНА 4 · Недостаточно scopes
Вы вошли в систему, но у токена нет scopes repo / read:org. Часто встречается с приватными репозиториями или организациями. Выдайте их через gh auth refresh.
ПРИЧИНА 5 · Временный сбой (часто безобиден)
Лимит частоты обращений к API GitHub, разовый сетевой сбой или устаревший кеш отображения. Если и аутентификация, и сеть в порядке, обычно проходит после короткой паузы и повторной попытки.

Причины 1–4 — это проблемы настроек/состояния (исправьте их, и они больше не повторятся).
Причина 5 — временная. Начать с Причины 1 (аутентификация) и Причины 2 (наличие push/PR) — самый быстрый путь.

4. Исправляем сейчас — порядок диагностики

Когда появился красный баннер, пройдите 4 шага сверху вниз. В большинстве случаев причина определяется уже на ШАГЕ 1 или ШАГЕ 2.

4 ШАГА

Порядок диагностики

ШАГ 1 · Проверьте аутентификацию
Выполните gh auth status. Если вы не видите "Logged in", аутентификация истекла. Войдите заново через gh auth login. Это решает большинство случаев.
ШАГ 2 · Push и наличие PR
Запушьте в удалённый репозиторий через git push -u origin <branch>, затем проверьте наличие PR командой gh pr status. Если PR нет — просто создайте его.
ШАГ 3 · Доступность и scopes
Отключите VPN/прокси или попробуйте другую сеть. Если не хватает scopes, выдайте их через gh auth refresh -s repo,read:org.
ШАГ 4 · Подождите / повторите
Если шаги 1–3 в порядке, значит сбой временный. Подождите немного и повторите, либо обновите Claude Code до последней версии и перезапустите.

Правило: "Подозревайте соединение с GitHub раньше, чем код".
gh auth status из ШАГА 1 — самый быстрый шаг к настоящей причине.

И ещё одно: даже когда появляется этот баннер, ваши локальные коммиты и рабочее дерево в безопасности. Не нужно спешить с git reset или сбрасывать сессию. Сначала исправьте соединение, затем снова нажмите "Create PR" — в большинстве случаев это проходит. Если создать всё равно не получается, выполните gh pr create вручную из CLI, чтобы создать PR в обход UI Claude Code.

5. Шпаргалка по командам

Вот команды, используемые для диагностики. Выполняйте их сверху вниз, и вы естественным образом сузите круг до того, какая ПРИЧИНА у вас.

НазначениеКомандаНа что смотреть
Жива ли аутентификация?gh auth statusПоявляется ли "Logged in to github.com" / scopes токена
Повторный входgh auth loginИнтерактивный; вход через браузер наиболее надёжен
Добавить scopesgh auth refresh -s repo,read:orgЧасто отсутствуют для приватных/org-репозиториев
Проверить настройку remotegit remote -vУказывает ли origin на правильный репозиторий GitHub
Запушить веткуgit push -u origin <branch>Выполняет предусловие для существования PR
Наличие / состояние PRgh pr statusЕсть ли PR для текущей ветки / открыт или смержен
Создать PR через CLIgh pr createСоздать напрямую, минуя GUI (обходной путь)
Проверка доступностиgh api rate_limitОтвет означает, что соединение в порядке / проверьте остаток по лимитам

Если gh auth status возвращает "Logged in", а gh pr status отвечает нормально, то скорее всего дело просто в том, что отображение Claude Code устарело. Обновите его до последней версии и перезапустите — значок повторно синхронизируется корректно.

6. Можно ли игнорировать "может быть устаревшей"?

Строка "эта информация может быть устаревшей" означает разное в разных ситуациях. Стоит научиться отличать, когда её можно игнорировать, а когда требуются действия.

✅ Можно игнорировать (безобидно)

  • gh auth status в порядке
  • другие операции Git/push проходят нормально
  • проходит после короткой паузы / повтора
  • значок PR лишь на мгновение выглядит устаревшим

→ Просто задержка синхронизации / кеш. Продолжайте работать.

⚠ Требует действий (реально)

  • gh auth status сообщает "not logged in"
  • и push, и pull не проходят
  • не проходит, сколько ни повторяй
  • нажатие "Create PR" не двигается дальше

Реальная проблема аутентификации/соединения. Исправьте через ШАГИ 1–3.

Решающий тест — снова один gh auth status. Если он зелёный (Logged in) и другие операции Git проходят, баннер можно оставить в покое. И наоборот, если аутентификация не работает, то рано или поздно перестанут проходить и операции помимо PR (push, получение ревью и т. д.), поэтому разумно исправить это сразу.

7. Чек-лист для предотвращения повторов

Практический чек-лист, чтобы тот же красный баннер не докучал вам снова.

Выработайте привычку время от времени проверять gh auth status (токены могут истекать за считанные недели). Если используете приватные/org-репозитории, выдайте необходимые scopes с самого начала через gh auth refresh -s repo,read:org. Начиная работу над новой веткой, выполняйте git push -u origin <branch> пораньше (поддержание состояния, где PR может существовать, стабилизирует отображение). В корпоративной сети (прокси/VPN) один раз проверьте доступность через gh api rate_limit. Держите Claude Code в актуальном состоянии — улучшения отображения и синхронизации выходят постоянно. Если GUI стабильно нестабилен, переключите создание PR на gh pr create (самый надёжный способ).

Итоги

Сообщение Claude Code "Could not check the pull request status. This information may be out of date" указывает не на дефект кода, а на то, что запрос к GitHub (часто через gh CLI) на мгновение не прошёл. Обычно это безобидная задержка синхронизации, но за ним могут скрываться истёкшая аутентификация, незапушенная ветка / отсутствующий PR, проблема с сетью или нехватка scopes.

Самый быстрый способ диагностики: ① проверьте аутентификацию через gh auth status, ② проверьте push и наличие PR через git push + gh pr status, ③ проверьте доступность и scopes, ④ если всё в порядке, подождите и повторите плюс обновите до последней версии. Когда из GUI создать действительно не получается, просто создайте PR напрямую через gh pr create. "Подозревайте соединение с GitHub раньше, чем код" — запомните это, и этот красный баннер больше не будет вас пугать.

Связанные материалы: Что такое GitHub Copilot, Что такое Claude Agent SDK, Ошибка 400 в блоках размышления Claude Code и рабочий процесс деплоя Claude Code / Cursor.

FAQ

В. Если появилась эта ошибка, мой код или диф будут потеряны?
О. Нет. Это предупреждение со стороны связи о том, что "не удалось прочитать состояние PR"; оно никак не влияет на ваши локальные коммиты, рабочее дерево или диф (например, +2,148 −14). Не нужно спешить с git reset или сбрасывать сессию.

В. Что проверить в первую очередь?
О. gh auth status. Эта единственная команда сообщит, жива ли ваша аутентификация GitHub. Если вы видите "Logged in", аутентификация в порядке — обычно сбой временный, так что подождите и повторите. Если нет, войдите заново через gh auth login, и большинство случаев разрешится.

В. Можно ли оставить "эта информация может быть устаревшей" без внимания?
О. Если и аутентификация, и сеть в порядке — да. Часто это просто задержка синхронизации / кеш, который проходит после короткой паузы или повтора. Но если gh auth status сообщает "not logged in" или даже push не проходит — это реальная проблема, исправьте её.

В. "Create PR" не проходит, сколько ни пытаюсь.
О. Выполните gh pr create напрямую из терминала, минуя GUI; это позволит создать сам PR. Если всё равно не получается, проверьте через git push -u origin <branch>, есть ли ветка в удалённом репозитории, и через git remote -v — указывает ли origin на правильный репозиторий.

В. На корпоративной сети это случается часто. Почему?
О. Скорее всего прокси, VPN или фаервол блокируют трафик к api.github.com. Проверьте, отвечает ли gh api rate_limit; если нет, нужно разрешение со стороны сети (добавление доменов GitHub в allowlist). Временное отключение VPN, чтобы локализовать проблему, тоже помогает.