Запись сессии не появилась
Почему записи сессий не создаются или не открываются — доступ, модуль записи, согласие, срок хранения, пустая и замаскированная запись, отказ плеера и нехватка прав.
На этой странице
- Сначала три переключателя
- Решение проблем
- Раздел закрыт заглушкой «Записи действий недоступны»
- Модуль записи не загрузился
- Согласие не выдано
- Запись открывалась, а теперь «Запись недоступна»
- Запись есть, но пустая или почти вся замаскирована
- Воспроизведение обрывается или плеер отказывается запускаться
- Список и плеер закрыты сообщением о правах
- Что проверить
Записи сессий отказывают частично: события продолжают собираться, а видео нет. Из-за этого поломку легко не заметить и легко перепутать с настройками. Ниже — разбор по симптомам, от «не собирается» к «собралось, но не открывается».
Сначала три переключателя
Записи выключены по умолчанию, и выключены они дважды: отдельным переключателем и нулевой долей записываемых сессий. Проверьте оба в Настройки → Сбор и приватность → Записи сессий:
- «Записывать выбранную долю сессий» — включено.
- «Доля записей» — больше нуля.
- Тег на сайте отдаёт согласие, если сбор требует согласия.
Изменения подхватываются трекерами в течение минуты и действуют только для новых сессий: историю задним числом они не заполняют. После включения подождите минуту и откройте сайт в новой сессии, а не обновляйте старую вкладку.
Решение проблем
Раздел закрыт заглушкой «Записи действий недоступны»
Вероятная причина. Не доступ по тарифу как таковой, а отсутствие действующего доступа вообще: подписка приостановлена, пробный период закончился, либо в собственной установке подписанная лицензия не содержит ключ записей сессий. Точный текст заглушки — «Функция не включена для текущего проекта. Данные и элементы управления плеером не загружались», и последняя фраза буквальна: запросов к данным записей экран не делал.
Как проверить. Откройте раздел биллинга в кабинете и посмотрите состояние
подписки. Со стороны приёма это видно по ответам на отправку частей записи:
403 с кодом feature_locked и сообщением «session replay is not available»
означает отсутствие права, 402 с кодом subscription_required — приостановку
доступа. В собственной установке смотрите страницу лицензии.
Безопасное исправление. Восстановите подписку или обновите лицензию. Данные при этом не теряются: уже сохранённые записи остаются доступными в пределах срока хранения, как только доступ вернётся.
Если не помогло. Проверьте, не открываете ли вы демонстрационный проект: в публичном демо записи посетителей отключены намеренно, и вместо списка там показывается готовый пример. Это не поломка.
Модуль записи не загрузился
Вероятная причина. Запись выполняет отдельный файл-модуль той же версии, что
и ядро трекера. Ядро подгружает его само, с проверкой контрольной суммы, и
берёт его с origin самого скрипта, а не с адреса приёма событий. Отказать
может любое из четырёх звеньев: файл недоступен по адресу, контрольная сумма не
совпала, версия модуля не равна версии ядра, загрузка не уложилась в 10 секунд.
Отдельная и самая частая причина — политика безопасности сайта без
worker-src blob:: запись использует фоновый поток, остальной сбор — нет.
Как проверить. В сетевой панели должен быть запрос файла replay.js с кодом
200. Дальше по симптомам:
| Что видно | Причина |
|---|---|
запроса replay.js нет вовсе |
запись не включена конфигурацией или сессия не попала в долю |
код 404 |
файл не выложен по ожидаемому адресу — типично для раздачи со своего домена |
в консоли сообщение про integrity |
сумма модуля не совпала |
в консоли сообщение про Content Security Policy и worker или blob |
не хватает worker-src blob: |
| файл загрузился, а частей записи не отправляется | версия модуля не совпала с версией ядра |
Безопасное исправление. Для политики безопасности добавьте worker-src blob: (и data: для браузеров без поддержки таких потоков); в старых
браузерах эту роль играет child-src blob:. Директива unsafe-eval не нужна
ни при каких условиях. При раздаче файлов со своего домена выложите весь набор
одной версии целиком — расхождение версий разбирается в
версиях и контрольных суммах.
Если не помогло. Если модуль недоступен, соответствующая возможность просто
не включается, а базовый сбор продолжает работать — поэтому проверять нужно
именно наличие файла, а не наличие событий. Ещё одна деталь: в консоли может
появиться запрос несуществующего файла карт исходников с кодом 404. Это
косметика, на работу записи она не влияет.
При подключении из бандла запись — отдельная возможность, выключенная по умолчанию: её нужно включить в конфигурации клиента, иначе серверная настройка ничего не даст. Удалённых файлов в этом режиме не загружается вовсе.
Согласие не выдано
Вероятная причина. Пока сбор не разрешён, трекер не запрашивает конфигурацию сбора и не загружает модуль записи. Никакой отдельной настройки «записывать без согласия» нет и быть не должно.
Как проверить. В консоли страницы:
pp.getConsent(); // 'granted' — сбор разрешён
Если вернулось pending, denied или revoked, записи не будет по построению.
Дополнительный признак: в сетевой панели нет запроса /v1/cfg.
Безопасное исправление. Передайте решение из своего баннера согласия и убедитесь, что делаете это на каждой загрузке страницы. Разбор — в согласии.
Если не помогло. Помните, что отзыв согласия отбрасывает активную запись без досылки: незавершённые части не уходят на сервер. Это осознанное поведение, и оно означает, что сессия, в которой посетитель отозвал согласие, в записях не появится вообще.
Запись открывалась, а теперь «Запись недоступна»
Вероятная причина. Истёк срок хранения. Плеер показывает именно это: «Запись не была сохранена или уже удалена по сроку хранения. События сессии остаются доступны в профиле пользователя». Срок задаётся тарифом и составляет от 7 дней до 90 дней; сверху действует общий предел в 90 дней.
Как проверить. Сравните дату сессии с сегодняшней и со сроком хранения своего тарифа. Если сессия старше — диагноз подтверждён. Если моложе, посмотрите, есть ли у строки в списке значок «Запись»: значение «Нет записи» означает, что видео для этой сессии и не создавалось.
Безопасное исправление. Восстановить истёкшую запись нельзя: истёкшие части удаляются из хранилища, а не скрываются. Стирается только видео — события сессии остаются, и разбор поведения по ним по-прежнему возможен.
Если не помогло. Если запись пропала заметно раньше срока, проверьте, не выполнялось ли в проекте удаление данных человека: это отдельная необратимая процедура, и она стирает записи вместе с остальными данными субъекта.
Запись есть, но пустая или почти вся замаскирована
Вероятная причина. Два независимых механизма. Первый — режим текста
«Строгий», он включён по умолчанию: текста страницы в записи нет вообще, видна
только структура и поведение. Второй — атрибуты разметки: элемент с
data-pp-block не записывается вместе со всем содержимым. Отдельный случай —
плеер сообщает «Запись пуста» или «В записи нет полного снимка rrweb»: значит
сохранились не все части, а без первой части воспроизводить нечего.
Как проверить. Режим текста виден в **Настройки → Сбор и приватность →
Записи сессий → «Текст на странице». Наличие атрибутов проверяется поиском
data-pp-block в разметке страницы. Если плеер сообщает об отсутствии полного
снимка, посмотрите в списке сессий длительность и число событий: очень короткая
сессия часто просто не успевает отдать первую часть.
Безопасное исправление. Если текст нужен для разбора, переключите режим на «Стандартный — маскировать ввод и пароли». Значения полей ввода при этом по-прежнему маскируются всегда, а пароли — безусловно; ослабить это нельзя ни настройкой, ни тарифом. Изменение действует только на новые сессии.
Если не помогло. Проверьте, не оборвалась ли запись по пределу. Пределы
одной записи: 60 минут, 10 МиБ на сессию, 512 КиБ на одну часть и 10 000
частей. При достижении любого из них запись останавливается, буфер
отбрасывается и в этой сессии не возобновляется, а факт остановки фиксируется
событием pp.replay_capped с причиной — его видно в реестре событий. Часовые
сессии поддержки в запись целиком не попадут: это осознанный компромисс в
пользу предсказуемого объёма.
Ещё одна причина неполноты — работа в нескольких вкладках. Решение о попадании сессии в выборку и счётчик частей записи хранятся в хранилище вкладки, поэтому сессия, продолженная в новой вкладке, решается заново и её части нумеруются независимо. Если запись выглядит неполной именно у людей, которые открывают ссылки в новых вкладках, — причина здесь.
Воспроизведение обрывается или плеер отказывается запускаться
Вероятная причина. Плеер проверяет каждую часть записи перед воспроизведением и отказывается показывать то, что не проходит проверку безопасности или превышает границы. Это защита, а не сбой сети.
Как проверить. Сообщение на экране плеера прямо называет причину:
| Сообщение | Что произошло |
|---|---|
| «Запись содержит небезопасную браузерную возможность» | в записи встретился элемент или возможность, которые плеер не воспроизводит |
| «В записи нет полного снимка rrweb» | не сохранилась первая часть записи |
| «Нарушен порядок частей записи» | части пришли с пропуском |
| «Запись превышает безопасный лимит загрузки» | суммарный объём больше границы загрузки |
| «Запись превышает безопасный лимит сложности» | слишком много элементов или событий |
| «Этот браузер не поддерживает безопасную распаковку gzip» | устаревший браузер |
Безопасное исправление. Границы плеера менять нельзя, и это правильно: воспроизведение чужой страницы в кабинете — самая чувствительная часть продукта. Практический путь — разбирать сессию по событиям и маркерам, а не по видео: в списке событий и в карточке человека есть всё, кроме картинки. При сообщении о распаковке откройте запись в текущей версии Chrome, Edge, Firefox или Safari.
Если не помогло. Если отказ повторяется на всех записях проекта, а не на одной, соберите: адрес страницы плеера, точный текст сообщения и время попытки в UTC. Содержимое записи в поддержку пересылать не нужно и не следует — достаточно текста сообщения.
Список и плеер закрыты сообщением о правах
Вероятная причина. У вас роль «Наблюдатель». Записи требуют роли «Аналитик» или выше — это отдельная граница, не связанная с тарифом.
Как проверить. Посмотрите свою роль в разделе команды проекта. Отличить отказ по правам от отказа по доступу можно по тексту: заглушка о недоступности функции говорит про проект, сообщение о правах — про вас.
Безопасное исправление. Попросите владельца или администратора проекта повысить роль. Повышение роли не открывает доступ к чужим проектам и не меняет уже собранные данные.
Если не помогло. Если роль подходящая, а раздел всё равно закрыт, проверьте
частоту запросов: чтение записей ограничено 120 запросами в минуту на
пользователя, проект и экран, и при превышении приходит 429 с заголовком
Retry-After. Подождите указанное время.
Что проверить
- Подписка действует, роль — «Аналитик» или выше.
- Переключатель записей включён, доля записей больше нуля.
pp.getConsent()возвращаетgrantedна проблемной странице.- В сетевой панели есть
replay.jsс кодом200и запросы частей записи. - В политике безопасности сайта разрешён
worker-src blob:. - Проверка проводится в новой сессии, спустя минуту после изменения настроек.
- Дата сессии укладывается в срок хранения тарифа.
Как устроены записи, что в них попадает и как приходить к нужной записи из отчётов — в записях сессий.