Erros e avisos de validação do feed Realtime

Nesta página, você encontra uma lista de erros e avisos de validação do feed de transporte público Realtime, além de dicas para resolver esses problemas.

Erros de validação do feed Realtime

Para fornecer informações precisas aos passageiros, corrija os erros de validação no seu feed Realtime.

Para depurar esses erros, use os dados da tabela a seguir.

  • A coluna "Valor de tipo enumerado" indica o nome curto do problema no feed Realtime, que aparece no relatório de validação, no painel do parceiro do Google Transit.
  • A coluna "Mensagem de erro" apresenta a mensagem que aparece no relatório de validação, no painel do parceiro do Google Transit, e resume o erro.
  • A coluna "Dicas de solução de problemas" informa as principais etapas que você precisa seguir para resolver o erro.
Valor de tipo enumerado Mensagem de erro Dicas de solução de problemas
PROTO_MISSING_FIELDS_ERROR No buffer de protocolo binário, um ou mais campos %(field) não foram informados. Abra o arquivo em um editor de texto e verifique se o feed inclui todos os campos marcados como obrigatórios no buffer de protocolo FeedMessage.
PROTO_ASCII_ERROR Não é possível analisar o buffer de protocolo ASCII. Erros: %(field). Abra o arquivo em um editor de texto e verifique se o feed inclui todos os campos obrigatórios e usa a sintaxe correta.
PROTO_PARSE_ERROR Não é possível analisar o buffer de protocolo binário. Abra o arquivo em um editor de texto e verifique se o feed pode ser analisado como um FeedMessage. Confira amostras de código em Exemplos de feed.
URL_DNS_ERROR Erro de DNS do URL. Verifique a conexão de Internet e as configurações de DNS.
FETCHER_CONNECTION_ERROR Falha ao se conectar ao URL. Verifique o URL fornecido para busca. Verifique se o URL está correto.
CUSTOM_PARSE_ERROR Falha ao analisar o feed de formato personalizado: %(value_string) Verifique o conteúdo do arquivo em um editor de texto. Confirme se o arquivo foi gerado corretamente e não foi corrompido durante o processo. Se o erro persistir, entre em contato com seu representante do Google Transit para receber ajuda.
FEED_TOO_OLD O carimbo de data/hora do feed %(timestamp) (%(timestamp_string)) está no passado em %(diff_time) segundos (%(difftime_string)). O horário atual é %(localtime) (%(localtime_string)). Feed descartado. Verifique se não há outros problemas informados sobre a busca do feed. Gere o feed regularmente e mantenha os dados atualizados. Verifique se o carimbo de data/hora do feed representa mesmo o horário de criação dele em segundos após a época (no fuso horário UTC).
FETCHER_HTTP_ERROR Erro de HTTP: %(value). Verifique o código do erro HTTP retornado e investigue o problema.
FULL_DATASET_REQUIRED Há suporte apenas para feeds FULL_DATASET. Defina o valor de incrementality como FULL_DATASET.
FEED_TIMESTAMP_CONSISTENTLY_IN_THE_FUTURE O carimbo de data/hora do feed geralmente está adiantado em %(diff_time) segundos (%(difftime_string)). Informe o carimbo de data/hora no fuso horário UTC, em segundos após a época. Verifique os relógios do servidor para garantir que todos estejam sincronizados, como acontece com o NTP.
INVALID_TIMESTAMP_RANGE O valor do carimbo de data/hora do feed está fora do intervalo (%(timestamp)). Use um carimbo de data/hora do feed que representa o horário de criação dele em segundos após a época (no fuso horário UTC).
PROTO_ENCODING_UNKNOWN Codificação de feed desconhecido. Use a codificação correta para configurar o feed. O feed final precisa estar no formato binário, mas é possível usar o formato ASCII para testes.
VEHICLE_POSITION_INTERNAL_ERROR A conversão de VehiclePosition em TripUpdate falhou para %(trip_id) com um erro genérico "%(value_string)". Esse erro indica que VehiclePosition não é usada para estimar uma TripUpdate. Entre em contato com seu representante do Google Transit para receber ajuda.

Avisos de validação do feed Realtime

Para aumentar a qualidade dos dados, é importante corrigir os avisos de validação que indicam possíveis problemas com seu feed Realtime.

Para depurar esses avisos, pesquise nas entradas da tabela a seguir.

  • A coluna "Valor de tipo enumerado" indica o nome curto do problema no feed Realtime, que aparece no relatório de validação, no painel do parceiro do Google Transit.
  • A coluna "Mensagem com aviso ou informações" mostra a mensagem que aparece no relatório de validação, no painel do parceiro do Google Transit, e resume o aviso ou as informações.
  • A coluna "Dicas de solução de problemas" informa as principais etapas que você precisa seguir para resolver o aviso.
Valor de tipo enumerado Mensagem de aviso ou informações Dicas de solução de problemas
TRIP_UPDATE_SOME_STU_NOT_MATCHED %(value) das StopTimeUpdates válidas especificadas que trip_id "%(trip_id)" não puderam ser correspondidos à viagem GTFS, por exemplo, posição: %(index) stop_sequence: %(next_seq) stop_id: "%(stop_id)". Confira se as StopTimeUpdates são informadas na ordem correta.
VEHICLE_POSITION_DUPLICATE_TRIP_BLOCK_TRANSFER $(trip_id) e start_time $(timestamp_string) de uma viagem com baldeação em bloco foram informados por vários veículos. É preciso que apenas um veículo represente uma viagem em um horário de início específico.
INVALID_ALERT_ROUTE_NOT_MATCHED Alerta descartado: não foi possível associar route_id "%(route_id)" ao Feed GTFS. Verifique se a programação estática está correta e adicione as informações do trajeto, se estiverem faltando. Quando a nova programação estática estiver ativa, corrija a referência route_id no feed Realtime.
INVALID_ALERT_STOP_NOT_MATCHED Alerta descartado: não foi possível associar stop_id "%(stop_id)" ao Feed GTFS. Verifique se a programação estática está correta e adicione as informações da parada, se estiverem faltando. Quando a nova programação estática estiver ativa, corrija a referência stop_id no feed Realtime.
INVALID_ALERT_TRIP_NOT_MATCHED Alerta descartado: não foi possível associar trip_id "%(trip_id)" ao Feed GTFS. Verifique se a programação estática está correta e adicione as informações da viagem, se estiverem faltando. Quando a nova programação estática estiver ativa, corrija a referência trip_id no feed Realtime.
STOP_TIME_UPDATE_PREMATURE_ARRIVAL Chegada de StopTimeUpdate para a viagem "%(trip_id)" com stop_id "%(stop_id)", sendo que stop_sequence %(next_seq) está %(value) segundos à frente da StopTimeUpdate anterior com stop_id "%(other_id)" e stop_sequence %(prev_seq). Verifique os horários de chegada e de partida do stop_id especificado ou dos anteriores. Corrija os valores incorretos para que a diferença entre os horários não diminua.
INVALID_ALERT_NO_INFORMED_ENTITIES Pelo menos uma entidade informada precisa ser fornecida. Inclua uma informed_entity relevante no alerta.
PROTO_ENCODING_MISMATCH A codificação de .proto configurada é diferente da recebida. Forneça o feed no formato correto. Se o problema persistir, entre em contato com seu representante do Google Transit para receber ajuda.
STOP_TIME_UPDATE_PREMATURE_DEPARTURE Partida de StopTimeUpdate para a viagem "%(trip_id)" com stop_id "%(stop_id)", sendo que stop_sequence %(next_seq) está %(value) segundos à frente da StopTimeUpdate anterior com stop_id "%(other_id)" e stop_sequence %(prev_seq). Verifique o horário de partida do stop_id especificado ou dos anteriores. Corrija os valores incorretos para que a diferença entre os horários de partida não diminua.
DETOUR_MUST_SPECIFY_TIME O desvio da viagem "%(trip_id)" até a parada "%(stop_id)" precisa especificar o tempo absoluto. Inclua os horários exatos no stop_id afetado para o trip_id especificado.
ENTITY_MUST_HAVE_ALERTS A entidade precisa ter alertas. Verifique se o conteúdo do feed está completo e se cada mensagem da FeedEntity inclui informações sobre alertas de serviço.
ENTITY_MUST_HAVE_POSITIONS A entidade precisa ter posições. Confira se o conteúdo do feed está completo e se cada mensagem da FeedEntity inclui informações sobre a posição do veículo.
ENTITY_MUST_HAVE_UPDATES A entidade precisa ter atualizações de viagens. Verifique se o conteúdo do feed está completo e se cada mensagem da FeedEntity inclui informações sobre atualizações de viagens.
TIMESTAMP_FUTURE O carimbo de data/hora do feed %(timestamp) (%(timestamp_string)) está %(diff_time) segundos (%(difftime_string)) adiantado. Está sendo usado o carimbo de data/hora de aquisição, que é %(localtime) (%(localtime_string)). Informe o carimbo de data/hora no fuso horário UTC, em segundos após a época. Verifique os relógios do servidor para garantir que todos estejam sincronizados, como acontece com o NTP.
TIMESTAMP_PAST O carimbo de data/hora do feed %(timestamp) (%(timestamp_string)) está %(diff_time) segundos (%(difftime_string)) atrasado. Está sendo usado o carimbo de data/hora de aquisição, que é %(localtime) (%(localtime_string)). Gere novamente o feed Realtime com mais frequência, mesmo que o conteúdo permaneça igual ou fique vazio.
NO_VALID_TEXT O campo %(field) não tem traduções válidas. Analise as mensagens de TranslatedString e corrija os problemas relevantes, como HTML_TAGS_FOUND, INVALID_URL_LENGTH, INVALID_TEXT_LENGTH e INVALID_URL.
HTML_TAGS_FOUND O campo %(field)(%(index)) contém tags HTML. Remova as tags HTML do campo.
INVALID_LANGUAGE O campo %(field)(%(index)) tem um código de idioma inválido "%(language)". Defina o campo de idioma como um código de idioma BCP-47 válido (link em inglês).
INVALID_URL O campo %(field)(%(index)) tem um URL inválido. É esperado que o http ou o https seja absoluto. Inclua um URL válido para o alerta.
INVALID_TEXT_LENGTH O campo %(field)(%(index)) tem o tamanho %(length) (máximo de %(max_length)). Encurte o texto informado, que costuma aparecer em telas pequenas, como smartphones. Se quiser dar mais detalhes aos usuários, forneça uma referência de URL.
INVALID_URL_LENGTH O campo %(field)(%(index)) tem o tamanho de URL %(length) (máximo de %(max_length)). Informe um URL que está dentro dos limites.
MULTIPLE_UNSPECIFIED_LANGUAGE O campo %(field)(%(index)) é uma tradução repetida sem definição de idioma. Revise as mensagens de TranslatedString. Defina os valores corretos para o campo language, em que mais de uma tradução é fornecida.
INVALID_TRIP_UPDATE_DELAY Atraso inválido na atualização da viagem: %(value). Revise o campo delay do entity_id especificado e corrija o valor incorreto.
INVALID_TRIP_UPDATE_EVENT_TIME Horário inválido do evento de parada: %(timestamp). Inclua TripUpdates apenas para viagens em andamento ou que estão prestes a acontecer.
INVALID_TRIP_UPDATE_DEPARTURE_NO_TIME Nem time nem delay foram fornecidos para uma partida. Inclua um campo time, um campo delay ou ambos em cada mensagem de StopTimeEvent. Se nenhuma informação estiver disponível, omita o campo departure.
INVALID_TRIP_UPDATE_ARRIVAL_NO_TIME Nem time nem delay foram fornecidos para uma chegada. Inclua um campo time, um campo delay ou ambos em cada mensagem de StopTimeEvent. Se nenhuma informação estiver disponível, omita o campo arrival.
MISSING_CONTENT_AND_EFFECT Nenhum conteúdo ou efeito válido. Adicione effect, header_text ou description_text ao alerta. Se nenhuma informação estiver disponível, remova o alert.
CUSTOM_PARSE_WARNING Falha parcial ao analisar o feed de formato personalizado: %(value_string) Esse erro indica que não foi possível analisar uma parte do feed Realtime. Abra um editor de texto para verificar o conteúdo do feed ou faça o upload dele novamente. Se o erro persistir, entre em contato com seu representante do Google Transit para receber ajuda.
VEHICLE_POSITION_BAD_START_TIME O horário de início especificado da viagem $(trip_id) fica a %(diff_time) segundos de distância do horário real do veículo. Especifique o horário de início do veículo próximo ao horário de início real da viagem.
INVALID_TRIP_UPDATE_INCONSISTENT_IDS stop_sequence %(value) não corresponde "%(stop_id)" da parada para a viagem "%(trip_id)". Está sendo substituído por stop_sequence %(next_seq) do índice estático. Verifique se o valor do campo stop_sequence está correto e corresponde à stop_sequence para os mesmos stop_id e trip_id no feed estático atual.
INVALID_STOP_STOP_ID StopTimeUpdate descartada: não foi possível associar o stop_id "%(stop_id)" fornecido para a viagem "%(trip_id)" ao Feed GTFS. stop_sequence [se presente] %(value). Verifique a precisão do feed estático. Se necessário, corrija o valor do stop_id em stop_times.txt para a viagem. Aguarde até que a nova versão do feed estático esteja ativa. Atualize a referência stop_id no feed Realtime.
INVALID_STOP_SEQUENCE_ID StopTimeUpdate descartada: não foi possível associar o stop_sequence "%(value)" na viagem "%(trip_id)" ao Feed GTFS. Verifique a precisão do feed estático. Se necessário, corrija o valor de stop_sequence. Aguarde até que a nova versão do feed estático esteja ativa. Atualize a referência stop_sequence no feed Realtime.
INVALID_TRIP_UPDATE_ORDER StopTimeUpdate descartada: violação de pedido stop_sequence para trip_id "%(trip_id)" com stop_id [se presente] "%(stop_id)" e stop_sequence %(prev_seq) seguida por %(next_seq). Defina a ordem de StopTimeUpdates com stop_sequence.
FEED_TIMESTAMP_CONSISTENTLY_IN_THE_PAST O carimbo de data/hora do feed geralmente está atrasado em %(diff_time) segundos (%(difftime_string)). Confirme se o valor do carimbo de data/hora está no fuso horário UTC, em segundos após a época. Confirme se os relógios do servidor estão sincronizados, como acontece com o NTP. Atualize o feed regularmente.
TIMESTAMP_MISSING FeedHeader do feed não tem o campo timestamp. Preencha o campo timestamp em FeedHeader em segundos após a época, no fuso horário UTC. O carimbo de data/hora precisa representar de maneira correta o horário de geração do feed.
ENTITY_MORE_THAN_ONCE O ID de FeedEntity aparece mais de uma vez no feed. Verifique se todos os IDs de entidades são exclusivos no feed.
PROTO_ASCII_HAS_BOM O feed fornecido começa com uma marca de ordem de byte (BOM, na sigla em inglês). Remova a marca de ordem de byte. Verifique se o buffer de protocolo em formato de texto está em UTF-8 sem BOM. Recomendamos fornecer o buffer de protocolo no formato binário.
TRIP_UPDATE_TIMESTAMP_CONSISTENTLY_IN_THE_FUTURE O timestamp de alguma atualização de viagem está de modo consistente no futuro em %(diff_time) segundos (%(difftime_string)). Confirme se o valor do timestamp está formatado como um fuso horário UTC, em segundos após a época. Confirme se os relógios do servidor estão sincronizados, como acontece com o NTP. Remova TripUpdates do feed de viagens que foram concluídas há mais de uma hora.
VEHICLE_POSITION_TIMESTAMP_CONSISTENTLY_IN_THE_FUTURE O carimbo de data/hora está no futuro de modo consistente em %(diff_time) segundos (%(difftime_string)). Confirme se o valor do timestamp está formatado como um fuso horário UTC, em segundos após a época. Confirme se os relógios do servidor estão sincronizados, como acontece com o NTP.
VEHICLE_POSITION_TIMESTAMP_CONSISTENTLY_IN_THE_PAST O timestamp está no passado de modo consistente em %(diff_time) segundos (%(difftime_string)). Confirme se o valor do timestamp está formatado como um fuso horário UTC, em segundos após a época. Confirme se os relógios do servidor estão sincronizados, como acontece com o NTP. Remova VehiclePositions do feed de viagens que foram concluídas há mais de uma hora.
UNKNOWN_TRIP_ID O ID de viagem "%(trip_id)" é desconhecido para o Feed GTFS estático. Verifique o feed estático para garantir que ele tenha informações corretas e atualizadas. Confira se a versão correta do feed estático está em uso ou faça o upload dela, quando necessário. Informe um trip_id atual e preciso em TripDescriptor.
TRIP_OUTSIDE_SERVICE_WINDOW A viagem com o ID "%(trip_id)" não ocorre no horário especificado. Verifique a precisão do feed estático. Adicione informações da viagem, que estiverem faltando. Aguarde até que a nova versão do feed estático esteja ativa. Corrija a referência do trip_id no feed Realtime.
AMBIGUOUS_TRIP_DESCRIPTOR O TripDescriptor é ambíguo e não resolve nenhuma viagem em um horário específico. Se a viagem ocorrer com base na frequência, forneça um valor de start_time válido e um valor de start_date em TripDescriptor.
INVALID_TRIP_UPDATE_FUTURE_TIMESTAMP O carimbo de data/hora TripUpdate %(timestamp) (%(timestamp_string)) está %(diff_time) segundos (%(difftime_string)) adiantado em comparação com o carimbo de data/hora do feed, que é %(localtime) (%(localtime_string)). Confira se a fonte do relógio está com o horário correto definido. Verifique se as conversões de fuso horário foram realizadas com precisão. O campo Vehicle.Position.timestamp precisa ser formatado como um fuso horário UTC, em segundos após a época.
INVALID_VEHICLE_POSITION_FUTURE_TIMESTAMP O carimbo de data/hora VehiclePosition %(timestamp) (%(timestamp_string)) está %(diff_time) segundos (%(difftime_string)) no futuro em comparação com o carimbo de data/hora do feed, que é %(localtime) (%(localtime_string)). Confira se a fonte do relógio está com o horário correto definido. Verifique se as conversões de fuso horário foram realizadas com precisão. O campo Vehicle.Position.timestamp precisa ser formatado como um fuso horário UTC, em segundos após a época.
INVALID_VEHICLE_POSITION_STALE_TIMESTAMP O carimbo de data/hora VehiclePosition %(timestamp) (%(timestamp_string)) está %(diff_time) segundos (%(difftime_string)) atrasado em comparação com o carimbo de data/hora do feed, que é %(localtime) (%(localtime_string)). Remova os veículos que estão fora de serviço do feed. Verifique se o relógio está sincronizado e se as conversões de fuso horário estão corretas.
INVALID_ALERT_TIME_RANGE_END_PAST O período terminou há mais de um mês: %(time_end). Remova alertas (ou active_periods) que têm o horário de término no passado e não estão mais ativos.
INVALID_ALERT_TIME_RANGE_ORDER A ordem do período é invertida: (%(time_start), %(time_end)). Verifique o valor dos campos active_period. A ordem desses campos pode ser invertida.
INVALID_ALERT_TIME_RANGE_START_FUTURE O período começa mais de um ano a partir de agora: %(time_start). Inclua um horário de início do active_period em breve nos alertas.
STOP_TIME_AND_DELAY_MISMATCH A viagem "%(trip_id)" na parada "%(stop_id)" especifica o carimbo de data/hora %(timestamp) e o atraso %(delay), que são conflitantes. O atraso está sendo definido como %(value). Verifique se o feed Realtime corresponde ao feed estático ativo no momento. Confira se os campos delay e time em StopTimeEvent estão corretos e são consistentes. Como alternativa, omita o campo delay por completo e informe apenas o campo time.
INVALID_START_DATE A viagem "%(trip_id)" tem uma data de início "%(value_string)" inválida, presumida como o dia de hoje. O formato esperado é "AAAAMMDD". Verifique o valor de start_date da viagem especificada. Confira se o valor está correto.
INVALID_START_TIME A viagem "%(trip_id)" tem um horário de início "%(value_string)" inválido. O formato esperado é "HH:MM:SS". Verifique o valor e o formato de start_time para a viagem especificada. Confira se eles estão corretos.
VEHICLE_POSITION_DUPLICATE_TRIP Viagem $(trip_id) e start_time $(timestamp_string) informados por vários veículos. Mude o start_time da viagem e o ScheduleRelationship para ADDED nas viagens que não se baseiam em frequência.
VEHICLE_POSITION_CONVERTED_TO_ADDED A relação programada da viagem $(trip_id) foi alterada para viagem ADDED. Esse erro é o efeito colateral de outro problema. Para resolver isso, primeiro corrija esse problema.
INVALID_TRIP_UPDATE_MISSING_IDS A atualização da viagem contém stop_update, sem stop_sequence nem stop_id. Inclua um stop_id, uma stop_sequence ou ambos na mensagem StopTimeUpdate.
MULTIPLE_ENTITIES_PER_TRIP Atualização de viagem descartada: representa o mesmo trip_id "%(trip_id)" com o mesmo horário de início de outra entidade com o ID %(value_string). Confira se há no máximo uma TripUpdate para cada jornada real. Verifique se o TripDescriptor é único no feed.
INVALID_TRIP_UPDATE_MISSING_CONTENT A atualização da viagem trip_id "%(trip_id)" programada precisa especificar pelo menos uma atualização de horário de parada com dados ou um atraso.

Forneça uma das seguintes informações:

  • StopTimeUpdate com dados
  • TripUpdate.delay
TRIP_UPDATE_SUSPICIOUS_DELAY A viagem com trip_id "%(trip_id)" contém um atraso injustificado suspeito de %(difftime_string). Verifique se a TripDescription está definida com clareza, que precisa ter trip_id, start_date e start_time. Confira se StopTimeUpdates tem valores de horário que correspondem à viagem especificada. Verifique se há problemas de incompatibilidade de fuso horário, por exemplo, se start_date e start_time estão no fuso horário local, mas todos os campos de horários inteiros em FeedMessage estão em segundos após a época.
TRIP_UPDATE_OBSOLETE A viagem com trip_id "%(trip_id)" terminou há %(difftime_string). Remova as viagens do feed alguns minutos depois que elas chegarem à parada final.
UNSUPPORTED_ADDED_WITH_BLOCK_TRANSFER Não é possível definir TripDescriptor com schedule_relationship de ADDED para uma viagem %(trip_id) com baldeação em bloco. Use o valor ADDED somente para ScheduleRelationship com o intuito de indicar as viagens isoladas.
UNSUPPORTED_ADDED_WITHOUT_TIMES TripDescriptor com schedule_relationship de ADDED para uma viagem %(trip_id) sem horários especificados. Informe uma start_date e um start_time para indicar quando a viagem adicionada começou.
TRIP_UPDATE_TOO_OLD O carimbo de data/hora TripUpdate %(timestamp) (%(timestamp_string)) está %(diff_time) segundos (%(difftime_string)) atrasado. O horário atual é %(localtime) (%(localtime_string)). A TripUpdate foi descartada. Gere o feed regularmente e mantenha os dados atualizados. Verifique se o carimbo de data/hora TripUpdate está correto, em segundos após a época e formatado como um fuso horário UTC. Remova viagens do feed alguns minutos depois que elas chegarem à parada final.
INVALID_TRIP_UPDATE_DELAY_USAGE O campo delay de TripUpdate especificado com o horário em StopTimeUpdates.

Forneça informações sobre a programação usando somente uma das seguintes opções, e não ambas:

  • StopTimeUpdates
  • TripUpdate.delay
INVALID_VEHICLE_POSITION_VEHICLE_ID_MISSING VehiclePosition não tem um identificador de veículo. Informe um. Verifique se esse valor está estável em todas as versões do feed em que o veículo opera.
INVALID_VEHICLE_POSITION_INVALID_POSITION VehiclePosition não tem informações de posição válidas. Informe valores válidos para os campos latitude e longitude.
INVALID_VEHICLE_POSITION_TIMESTAMP_MISSING Não há um carimbo de data/hora VehiclePosition. Informe um valor de carimbo de data/hora para quando as informações de VehiclePosition foram coletadas, em segundos após a época formatada como fuso horário UTC.