Ошибки и предупреждения при проверке фида GTFS Realtime

В этой статье перечислены сообщения об ошибках и предупреждения, появляющиеся при проверке фида GTFS Realtime, а также приведены советы по устранению неполадок.

Сообщения об ошибках при проверке фида GTFS Realtime

Чтобы пассажиры получали точную информацию, исправьте все ошибки, обнаруженные при проверке фида GTFS Realtime.

Для этого воспользуйтесь информацией из таблицы ниже.

  • В столбце "Значение перечислимого типа" приводится сокращенное название проблемы в фиде Realtime, которое показывается в отчете о проверке на Панели инструментов Google Транспорта.
  • В столбце "Сообщение об ошибке" приводится текст сообщения, который показывается в отчете о проверке на Панели инструментов Google Транспорта. Это краткое описание ошибки.
  • В столбце "Советы по устранению неполадок" рассказывается, как решить проблему.
Перечисляемое значение Сообщение об ошибке Советы по устранению неполадок
PROTO_MISSING_FIELDS_ERROR В двоичном буфере протокола не задано одно или несколько полей %(field). Откройте файл в текстовом редакторе и убедитесь, что в фиде заданы все поля, отмеченные как обязательные в буфере протокола FeedMessage.
PROTO_ASCII_ERROR Не удалось проанализировать буфер протокола ASCII. Ошибки: %(field). Откройте файл в текстовом редакторе и убедитесь, что в фиде заданы все обязательные поля и используется правильный синтаксис.
PROTO_PARSE_ERROR Не удалось проанализировать двоичный буфер протокола. Откройте файл в текстовом редакторе и убедитесь, что фид можно проанализировать как FeedMessage. Примеры кода приведены в этом разделе.
URL_DNS_ERROR Ошибка DNS для URL. Проверьте подключение к интернету и настройки DNS.
FETCHER_CONNECTION_ERROR Не удалось подключиться к URL. Проверьте, правильно ли указан URL для получения данных.
CUSTOM_PARSE_ERROR Не удалось проанализировать фид специального формата: %(value_string). Проверьте содержимое файла в текстовом редакторе. Убедитесь, что файл создан корректно и не поврежден при передаче. Если ошибка не исчезнет, обратитесь за помощью к специалисту по Google Транспорту.
FEED_TOO_OLD Временная метка фида %(timestamp) (%(timestamp_string)) отдалена в прошлое на %(diff_time) сек. (%(difftime_string)). Текущее время: %(localtime) (%(localtime_string)). Фид отклонен. Проверьте, нет ли других проблем с получением фида. Регулярно создавайте фид и обновляйте данные. Убедитесь, что временная метка фида корректно отражает время его создания и указана в секундах после начала отсчета (в часовом поясе UTC).
FETCHER_HTTP_ERROR Ошибка HTTP: %(value). Посмотрите код ошибки HTTP и изучите возникшую проблему.
FULL_DATASET_REQUIRED Поддерживаются только фиды FULL_DATASET. Установите для параметра incrementality значение FULL_DATASET.
FEED_TIMESTAMP_CONSISTENTLY_IN_THE_FUTURE Временная метка фида отдалена в будущее на %(diff_time) сек. (%(difftime_string)). Укажите временную метку в часовом поясе UTC (в секундах после начала отсчета). Убедитесь, что все часы сервера синхронизированы с помощью NTP или другого средства.
INVALID_TIMESTAMP_RANGE Временная метка фида находится вне допустимого диапазона (%(timestamp)). Укажите временную метку фида, которая отражает время его создания, в секундах после начала отсчета (в часовом поясе UTC).
PROTO_ENCODING_UNKNOWN Неизвестная кодировка фида. Используйте для фида правильную кодировку. Конечный фид должен иметь двоичный формат (для тестирования можно использовать формат ASCII).
VEHICLE_POSITION_INTERNAL_ERROR При попытке преобразовать VehiclePosition в TripUpdate для рейса %(trip_id) произошла общая ошибка "%(value_string)". Эта ошибка означает, что VehiclePosition не используется для оценки TripUpdate. Обратитесь за помощью к специалисту по Google Транспорту.

Предупреждения при проверке фида GTFS Realtime

Чтобы качество данных в фиде GTFS Realtime было высоким, важно устранять потенциальные проблемы, обнаруженные при его проверке.

В этом вам помогут предупреждения, перечисленные в таблице ниже.

  • В столбце "Значение перечислимого типа" приводится сокращенное название проблемы в фиде Realtime, которое показывается в отчете о проверке на Панели инструментов Google Транспорта.
  • В столбце "Предупреждение" приводится текст сообщения, который показывается в отчете о проверке на Панели инструментов Google Транспорта. Это краткое описание проблемы.
  • В столбце "Советы по устранению неполадок" рассказывается, как решить проблему.
Перечисляемое значение Предупреждение Советы по устранению неполадок
TRIP_UPDATE_SOME_STU_NOT_MATCHED %(value) допустимых уточнений StopTimeUpdates для указанного trip_id (%(trip_id)) не удалось сопоставить с рейсом в фиде GTFS. Пример: position – %(index), stop_sequence – %(next_seq), stop_id – %(stop_id). Убедитесь, что уточнения StopTimeUpdates указаны в правильном порядке.
VEHICLE_POSITION_DUPLICATE_TRIP_BLOCK_TRANSFER Рейс $(trip_id) с пересадкой без смены транспортного средства и start_time $(timestamp_string) назначены нескольким транспортным средствам. Убедитесь, что рейс с определенным временем начала назначен только одному транспортному средству.
INVALID_ALERT_ROUTE_NOT_MATCHED Оповещение отклонено: route_id "%(route_id)" не удалось сопоставить с фидом GTFS. Проверьте правильность расписания в фиде GTFS Static и добавьте сведения о маршруте, если они отсутствуют. После публикации нового расписания исправьте ссылку на route_id в фиде GTFS Realtime.
INVALID_ALERT_STOP_NOT_MATCHED Оповещение отклонено: stop_id "%(stop_id)" не удалось сопоставить с фидом GTFS. Проверьте правильность расписания в фиде GTFS Static и добавьте сведения об остановке, если они отсутствуют. После публикации нового расписания исправьте ссылку на stop_id в фиде GTFS Realtime.
INVALID_ALERT_TRIP_NOT_MATCHED Оповещение отклонено: trip_id "%(trip_id)" не удалось сопоставить с фидом GTFS. Проверьте правильность расписания в фиде GTFS Static и добавьте сведения о рейсе, если они отсутствуют. После публикации нового расписания исправьте ссылку на trip_id в фиде GTFS Realtime.
STOP_TIME_UPDATE_PREMATURE_ARRIVAL Время прибытия в уточнении StopTimeUpdate для рейса %(trip_id) с паремтрами stop_id (%(stop_id)) и stop_sequence (%(next_seq)) на %(value) сек. предшествует времени в предыдущем уточнении StopTimeUpdate с параметрами stop_id (%(other_id)) и stop_sequence (%(prev_seq)). Проверьте время прибытия и отправления для указанного stop_id или предыдущих остановок. Исправьте неверные значения, чтобы время не уменьшалось.
INVALID_ALERT_NO_INFORMED_ENTITIES В оповещении должен быть указан по крайней мере один элемент. Добавьте в оповещение нужное значение informed_entity.
PROTO_ENCODING_MISMATCH Заданная кодировка файла proto отличается от полученной. Предоставьте фид в правильном формате. Если проблема не исчезнет, обратитесь за помощью к специалисту по Google Транспорту.
STOP_TIME_UPDATE_PREMATURE_DEPARTURE Время отправления в уточнении StopTimeUpdate для рейса %(trip_id) с параметрами stop_id (%(stop_id)) и stop_sequence (%(next_seq)) на %(value) сек. предшествует времени в предыдущем уточнении StopTimeUpdate с параметрами stop_id (%(other_id)) и stop_sequence (%(prev_seq)). Проверьте время отправления для указанного stop_id или предыдущих остановок. Исправьте неверные значения, чтобы время отправления не уменьшалось.
DETOUR_MUST_SPECIFY_TIME Для отклонения рейса %(trip_id) от маршрута через остановку %(stop_id) должно быть указано абсолютное время. Укажите точное время для нужного stop_id, связанного с указанным trip_id.
ENTITY_MUST_HAVE_ALERTS Для элементов должны быть заданы оповещения. Убедитесь, что фид содержит полные данные и каждое сообщение FeedEntity включает информацию об оповещениях.
ENTITY_MUST_HAVE_POSITIONS Для элементов должны быть заданы местоположения. Убедитесь, что фид содержит полные данные и каждое сообщение FeedEntity включает информацию о местоположении транспортного средства.
ENTITY_MUST_HAVE_UPDATES Для элементов должны быть заданы уточнения рейсов. Убедитесь, что фид содержит полные данные и каждое сообщение FeedEntity включает информацию об уточнениях рейсов.
TIMESTAMP_FUTURE Временная метка фида %(timestamp) (%(timestamp_string)) отдалена в будущее на %(diff_time) сек. (%(difftime_string)). Используется временная метка получения данных: %(localtime) (%(localtime_string)). Укажите временную метку в часовом поясе UTC (в секундах после начала отсчета). Убедитесь, что все часы сервера синхронизированы с помощью NTP или другого средства.
TIMESTAMP_PAST Временная метка фида %(timestamp) (%(timestamp_string)) отдалена в прошлое на %(diff_time) сек. (%(difftime_string)). Используется временная метка получения данных: %(localtime) (%(localtime_string)). Чаще создавайте фид Realtime повторно, даже если он содержит такие же или пустые значения.
NO_VALID_TEXT Нет допустимых переводов для поля %(field). Проверьте сообщения TranslatedString и устраните все проблемы, например HTML_TAGS_FOUND, INVALID_URL_LENGTH, INVALID_TEXT_LENGTH и INVALID_URL.
HTML_TAGS_FOUND Поле %(field) (%(index)) содержит теги HTML. Удалите из поля теги HTML.
INVALID_LANGUAGE В поле %(field) (%(index)) указан недопустимый код языка (%(language)). Укажите в поле языка допустимый код BCP-47.
INVALID_URL В поле %(field) (%(index)) указан недопустимый URL (необходимо использовать абсолютный URL http или https). Укажите для оповещения допустимый URL.
INVALID_TEXT_LENGTH Значение в поле %(field) (%(index)) содержит %(length) симв. (максимум: %(max_length)). Сократите текст, чтобы пользователям было удобно просматривать его на небольших экранах. Если вы хотите предоставить дополнительную информацию, добавьте ссылку на нее.
INVALID_URL_LENGTH URL в поле %(field) (%(index)) содержит %(length) симв. (максимум: %(max_length)). Укажите URL, длина которого не превышает ограничение.
MULTIPLE_UNSPECIFIED_LANGUAGE Поле %(field) (%(index)) содержит несколько переводов, для которых не указаны языки. Проверьте сообщения TranslatedString. Укажите в поле language корректные значения для всех добавленных переводов.
INVALID_TRIP_UPDATE_DELAY Недопустимая задержка в уточнении рейса: %(value). Проверьте поле delay для указанного entity_id и исправьте неверное значение.
INVALID_TRIP_UPDATE_EVENT_TIME Недопустимое время события остановки: %(timestamp). Используйте TripUpdates только для тех рейсов, которые выполняются или скоро начнутся.
INVALID_TRIP_UPDATE_DEPARTURE_NO_TIME Для отправления не задано ни time, ни delay. В каждом сообщении StopTimeEvent укажите time, delay или оба значения. Если эта информация недоступна, пропустите поле departure.
INVALID_TRIP_UPDATE_ARRIVAL_NO_TIME Для прибытия не задано ни time, ни delay. В каждом сообщении StopTimeEvent укажите time, delay или оба значения. Если эта информация недоступна, пропустите поле arrival.
MISSING_CONTENT_AND_EFFECT Отсутствует контент или результат. Добавьте в оповещение effect, header_text или description_text. Если эта информация недоступна, удалите alert.
CUSTOM_PARSE_WARNING Частичный сбой при анализе фида специального формата: %(value_string). Эта ошибка означает, что некоторые данные фида Realtime проанализировать не удалось. Проверьте содержимое фида в текстовом редакторе или загрузите его ещё раз. Если проблема не исчезнет, обратитесь за помощью к специалисту по Google Транспорту.
VEHICLE_POSITION_BAD_START_TIME Указанное время начала рейса $(trip_id) отличается от фактического на %(diff_time) сек. Укажите время, близкое к фактическому времени начала рейса.
INVALID_TRIP_UPDATE_INCONSISTENT_IDS Значение stop_sequence (%(value)) не соответствует остановке %(stop_id) на рейсе %(trip_id). Будет использоваться значение stop_sequence (%(next_seq)) из фида GTFS Static. Убедитесь, что значение stop_sequence корректно и соответствует значению stop_sequence для тех же stop_id и trip_id в текущем фиде GTFS Static.
INVALID_STOP_STOP_ID Сообщение StopTimeUpdate отклонено: указанное значение stop_id (%(stop_id)) для рейса %(trip_id) не удалось сопоставить с данными в фиде GTFS. stop_sequence [если есть]: %(value). Проверьте точность данных в фиде GTFS Static. При необходимости исправьте значение stop_id в файле stop_times.txt для этого рейса. Подождите, пока вступит в силу новая версия фида GTFS Static. Обновите ссылку на stop_id в фиде Realtime.
INVALID_STOP_SEQUENCE_ID Сообщение StopTimeUpdate отклонено: значение stop_sequence (%(value)) для рейса %(trip_id) не удалось сопоставить с данными в фиде GTFS. Проверьте точность данных в фиде GTFS Static. При необходимости исправьте значение stop_sequence. Подождите, пока вступит в силу новая версия фида GTFS Static. Обновите ссылку на stop_sequence в фиде GTFS Realtime.
INVALID_TRIP_UPDATE_ORDER Сообщение StopTimeUpdate отклонено: нарушение порядка stop_sequence для trip_id %(trip_id), stop_id [если есть] %(stop_id). В stop_sequence за "%(prev_seq)" следует "%(next_seq)". Убедитесь, что в StopTimeUpdates используется порядок stop_sequence.
FEED_TIMESTAMP_CONSISTENTLY_IN_THE_PAST Временная метка фида отдалена в прошлое на %(diff_time) сек. (%(difftime_string)). Укажите временную метку в часовом поясе UTC (в секундах после начала отсчета). Убедитесь, что все часы сервера синхронизированы с помощью NTP или другого средства. Регулярно обновляйте фид.
TIMESTAMP_MISSING В FeedHeader не задано поле timestamp. Задайте поле timestamp в FeedHeader в секундах после начала отсчета (в часовом поясе UTC). Временная метка должна корректно отражать время создания фида.
ENTITY_MORE_THAN_ONCE Идентификатор FeedEntity указан в фиде более одного раза. Убедитесь, что все идентификаторы элементов в фиде уникальны.
PROTO_ASCII_HAS_BOM Фид начинается с маркера последовательности байтов (BOM). Удалите маркер последовательности байтов. Убедитесь, что для текстового буфера протокола используется кодировка UTF-8 без BOM. Мы рекомендуем использовать для буфера протокола двоичный формат.
TRIP_UPDATE_TIMESTAMP_CONSISTENTLY_IN_THE_FUTURE Значение timestamp для одного из рейсов отдалено в будущее на %(diff_time) сек. (%(difftime_string)). Укажите timestamp в часовом поясе UTC (в секундах после начала отсчета). Убедитесь, что все часы сервера синхронизированы с помощью NTP или другого средства. Удалите из фида TripUpdates для рейсов, которые завершились более часа назад.
VEHICLE_POSITION_TIMESTAMP_CONSISTENTLY_IN_THE_FUTURE Временная метка отдалена в будущее на %(diff_time) сек. (%(difftime_string)). Укажите timestamp в часовом поясе UTC (в секундах после начала отсчета). Убедитесь, что все часы сервера синхронизированы с помощью NTP или другого средства.
VEHICLE_POSITION_TIMESTAMP_CONSISTENTLY_IN_THE_PAST Значение timestamp отдалено в прошлое на %(diff_time) сек. (%(difftime_string)). Укажите timestamp в часовом поясе UTC (в секундах после начала отсчета). Убедитесь, что все часы сервера синхронизированы с помощью NTP или другого средства. Удалите из фида VehiclePositions для рейсов, которые завершились более часа назад.
UNKNOWN_TRIP_ID Идентификатор рейса %(trip_id) не обнаружен в фиде GTFS Static. Убедитесь, что фид GTFS Static содержит точную и актуальную информацию. Проверьте, правильная ли версия фида GTFS Static используется, и при необходимости загрузите другую. Укажите в TripDescriptor правильное значение trip_id.
TRIP_OUTSIDE_SERVICE_WINDOW Рейс %(trip_id) не осуществляется в указанное время. Проверьте точность данных в фиде GTFS Static. Добавьте сведения о рейсе, если они отсутствуют. Подождите, пока вступит в силу новая версия фида GTFS Static. Исправьте ссылку на trip_id в фиде Realtime.
AMBIGUOUS_TRIP_DESCRIPTOR Неоднозначность: TripDescriptor не позволяет идентифицировать один рейс, осуществляемый в определенное время. Если это регулярный рейс, укажите в TripDescriptor допустимые значения start_time и start_date.
INVALID_TRIP_UPDATE_FUTURE_TIMESTAMP Временная метка TripUpdate %(timestamp) (%(timestamp_string)) отдалена в будущее на %(diff_time) сек. (%(difftime_string)) по сравнению с временной меткой фида %(localtime) (%(localtime_string)). Убедитесь, что время в источнике часов задано верно и изменение часового пояса выполняется корректно. Значение Vehicle.Position.timestamp должно быть указано в секундах после начала отсчета (в часовом поясе UTC).
INVALID_VEHICLE_POSITION_FUTURE_TIMESTAMP Временная метка VehiclePosition %(timestamp) (%(timestamp_string)) отдалена в будущее на %(diff_time) сек. (%(difftime_string)) по сравнению с временной меткой фида %(localtime) (%(localtime_string)). Убедитесь, что время в источнике часов задано верно и изменение часового пояса выполняется корректно. Значение Vehicle.Position.timestamp должно быть указано в секундах после начала отсчета (в часовом поясе UTC).
INVALID_VEHICLE_POSITION_STALE_TIMESTAMP Временная метка VehiclePosition %(timestamp) (%(timestamp_string)) отдалена в прошлое на %(diff_time) сек. (%(difftime_string)) по сравнению с временной меткой фида %(localtime) (%(localtime_string)). Удалите из фида сведения о транспортных средствах, которые уже не используются. Убедитесь, что часы синхронизированы и изменение часового пояса выполняется корректно.
INVALID_ALERT_TIME_RANGE_END_PAST Временной период завершился более месяца назад: %(time_end). Удалите неактивные оповещения (или active_periods) со временем окончания в прошлом.
INVALID_ALERT_TIME_RANGE_ORDER Обратный порядок временного периода: %(time_start), %(time_end). Проверьте значения в полях active_period. Возможно, они заданы в обратном порядке.
INVALID_ALERT_TIME_RANGE_START_FUTURE Задан временной период, который начинается более чем через год: %(time_start). Используйте в оповещениях время начала active_period, которое относится к ближайшему будущему.
STOP_TIME_AND_DELAY_MISMATCH Для остановки %(stop_id) на рейсе %(trip_id) указаны конфликтующие друг с другом временная метка (%(timestamp)) и задержка (%(delay)). Будет указана задержка %(value). Убедитесь, что фид Realtime соответствует текущему фиду Static. Проверьте правильность и согласованность значений delay и time в сообщении StopTimeEvent. Вы также можете пропустить поле delay и указать только time.
INVALID_START_DATE Для рейса %(trip_id) указана недопустимая дата начала (%(value_string)). Вместо нее будет использоваться текущая дата. Ожидаемый формат: ГГГГММДД. Проверьте значение start_date для указанного рейса. Убедитесь, что оно корректно и имеет правильный формат.
INVALID_START_TIME Для рейса %(trip_id) указано недопустимое время начала (%(value_string)). Ожидаемый формат: ЧЧ:ММ:СС. Проверьте значение start_time для указанного рейса. Убедитесь, что оно корректно и имеет правильный формат.
VEHICLE_POSITION_DUPLICATE_TRIP Рейс $(trip_id) и start_time $(timestamp_string) назначены нескольким транспортным средствам. Измените start_time рейса, а также измените значение ScheduleRelationship на ADDED для нерегулярных рейсов.
VEHICLE_POSITION_CONVERTED_TO_ADDED Статус относительно расписания для рейса $(trip_id) изменен на ADDED. Эта ошибка возникла как побочный эффект. Чтобы устранить ее, сначала решите первичную проблему.
INVALID_TRIP_UPDATE_MISSING_IDS В уточнении рейса есть stop_update, но нет ни stop_sequence, ни stop_id. В сообщении StopTimeUpdate укажите stop_id, stop_sequence или оба параметра.
MULTIPLE_ENTITIES_PER_TRIP Уточнение рейса отклонено: указан тот же trip_id %(trip_id) с таким же временем начала, что и в другом уточнении (%(value_string)). Убедитесь, что для каждого реального рейса задано не более одного TripUpdate и TripDescriptor имеет уникальное значение в рамках одного фида.
INVALID_TRIP_UPDATE_MISSING_CONTENT В уточнении запланированного рейса с trip_id %(trip_id) необходимо настроить хотя бы одно уточнение времени остановки с данными или указать задержку.

Предоставьте один из следующих видов информации:

  • StopTimeUpdate с данными
  • TripUpdate.delay
TRIP_UPDATE_SUSPICIOUS_DELAY Для рейса с trip_id %(trip_id) указана необоснованная задержка: %(difftime_string). Убедитесь, что TripDescription содержит всю необходимую информацию: trip_id, start_date и start_time. Убедитесь, что в StopTimeUpdates заданы значения времени, соответствующие указанному рейсу. Проверьте, нет ли проблем с часовым поясом, например start_date и start_time могут быть указаны в местном часовом поясе, а целочисленные значения времени в FeedMessage – в секундах после начала отсчета.
TRIP_UPDATE_OBSOLETE Рейс с trip_id %(trip_id) завершился %(difftime_string) назад. Удаляйте рейсы из фида в течение нескольких минут после прибытия транспортного средства на конечную станцию.
UNSUPPORTED_ADDED_WITH_BLOCK_TRANSFER TripDescriptor, в котором для schedule_relationship задано значение ADDED, нельзя использовать для рейса %(trip_id) с пересадкой без смены транспортного средства. Используйте ScheduleRelationship со значением ADDED только для одиночных рейсов.
UNSUPPORTED_ADDED_WITHOUT_TIMES Для рейса %(trip_id) используется TripDescriptor, в котором для schedule_relationship задано значение ADDED, но при этом не указано время. Задайте start_date и start_time, определяющие дату и время начала добавленного рейса.
TRIP_UPDATE_TOO_OLD Временная метка TripUpdate %(timestamp) (%(timestamp_string)) отдалена в прошлое на %(diff_time) сек. (%(difftime_string)). Текущее время: %(localtime) (%(localtime_string)). Сообщение TripUpdate отклонено. Регулярно создавайте фид и обновляйте данные. Убедитесь, что временная метка TripUpdate указана верно, в секундах после начала отсчета (в часовом поясе UTC). Удаляйте рейсы из фида в течение нескольких минут после прибытия транспортного средства на конечную станцию.
INVALID_TRIP_UPDATE_DELAY_USAGE Для TripUpdate задано и поле delay, и время в StopTimeUpdates.

Укажите только один из следующих видов информации:

  • StopTimeUpdates
  • TripUpdate.delay
INVALID_VEHICLE_POSITION_VEHICLE_ID_MISSING В VehiclePosition не указан идентификатор транспортного средства. Укажите идентификатор транспортного средства. Убедитесь, что он не меняется в разных версиях фида.
INVALID_VEHICLE_POSITION_INVALID_POSITION В VehiclePosition не указана информация о местоположении. Укажите допустимые значения latitude и longitude.
INVALID_VEHICLE_POSITION_TIMESTAMP_MISSING В VehiclePosition не указана временная метка. Укажите временную метку сбора информации для VehiclePosition, в секундах после начала отсчета (в часовом поясе UTC).