En esta página, se proporciona una lista de errores y advertencias de validación del feed de transporte público de Realtime, así como sugerencias para solucionar estos problemas.
Errores de validación de Realtime
Para proporcionar información precisa a los pasajeros, asegúrate de corregir los errores de validación en tu feed Realtime.
Para depurar los errores de validación de Realtime, utiliza la información de la siguiente tabla.
- En la columna "Valor enum", se proporciona el nombre corto del problema de tu feed Realtime, el cual se muestra en el informe de validación del Panel para socios de Google Transit.
- En la columna "Mensaje de error", se proporciona el mensaje que se muestra en el informe de validación del Panel para socios de Google Transit. Presenta un resumen del error.
- En la columna "Sugerencias para solucionar el problema", se indican los principales pasos que debes seguir para resolver el error.
| Valor enum | Mensaje de error | Sugerencias para solucionar el problema | 
|---|---|---|
| PROTO_MISSING_FIELDS_ERROR | Faltan campos %(field) en el búfer de protocolo binario. | Abre el archivo en un editor de texto y verifica que el feed incluya todos los campos marcados como obligatorios en el búfer de protocolo de FeedMessage. | 
| PROTO_ASCII_ERROR | No se puede analizar el búfer de protocolo ASCII. Errores: %(field). | Abre el archivo en un editor de texto, y verifica que el feed incluya todos los campos obligatorios y utilice la sintaxis correcta. | 
| PROTO_PARSE_ERROR | No se puede analizar el búfer de protocolo binario. | Abre el archivo en un editor de texto y verifica que el feed pueda analizarse como un FeedMessage. Puedes encontrar ejemplos de código en Ejemplos de feed. | 
| URL_DNS_ERROR | Se produjo un error de DNS relacionado con la URL. | Verifica la conexión a Internet y la configuración de DNS. | 
| FETCHER_CONNECTION_ERROR | No se pudo establecer la conexión con la URL. | Verifica la URL que proporcionaste para su recuperación. Asegúrate de que la URL sea correcta. | 
| CUSTOM_PARSE_ERROR | No se pudo analizar el feed de formato personalizado: %(value_string). | Verifica el contenido del archivo en un editor de texto. Confirma que el archivo se genere correctamente y que no se dañe durante el traslado. Si el error persiste, comunícate con tu representante de Google Transit para obtener ayuda. | 
| FEED_TOO_OLD | La marca de tiempo %(timestamp) (%(timestamp_string)) del feed está atrasada %(diff_time) segundos (%(difftime_string)). La hora actual es %(localtime) (%(localtime_string)). Se descartó el feed. | Verifica que no se hayan registrado otros problemas sobre la recuperación del feed. Genera el feed de forma periódica y mantén los datos actualizados. Asegúrate de que la marca de tiempo del feed represente correctamente la hora de creación del feed en segundos después de la época, en la zona horaria UTC. | 
| FETCHER_HTTP_ERROR | Error de HTTP: %(value). | Verifica el código de error HTTP mostrado y, luego, investiga el problema según corresponda. | 
| FULL_DATASET_REQUIRED | Solo se admiten feeds de FULL_DATASET. | Establece el valor de incrementalityenFULL_DATASET. | 
| FEED_TIMESTAMP_CONSISTENTLY_IN_THE_FUTURE | La marca de tiempo del feed siempre está adelantada %(diff_time) segundos (%(difftime_string)). | Asegúrate de proporcionar la marca de tiempo en la zona horaria UTC, en segundos después de la época. Verifica los relojes de tu servidor para asegurarte de que estén sincronizados, por ejemplo, con NTP. | 
| INVALID_TIMESTAMP_RANGE | El valor de la marca de tiempo del feed está fuera de los límites permitidos (%(timestamp)). | Proporciona una marca de tiempo del feed que represente correctamente la hora de creación del feed en segundos después de la época, en la zona horaria UTC. | 
| PROTO_ENCODING_UNKNOWN | No se reconoce la codificación del feed. | Utiliza la codificación correcta para configurar el feed. El feed final debe estar en formato binario, pero puedes utilizar el formato ASCII para realizar pruebas. | 
| VEHICLE_POSITION_INTERNAL_ERROR | No se pudo convertir VehiclePositionenTripUpdatepara el viaje %(trip_id) debido al error genérico "%(value_string)". | Este error indica que VehiclePositionno se utiliza para calcularTripUpdate. Comunícate con tu representante de Google Transit para obtener ayuda. | 
Advertencias de validación de Realtime
Para aumentar la calidad de los datos del feed, es importante corregir las advertencias de validación que indiquen posibles problemas relacionados con el feed Realtime.
Para depurar las advertencias de validación de Realtime, explora las entradas de la siguiente tabla.
- En la columna "Valor enum", se proporciona el nombre corto del problema de tu feed Realtime, el cual se muestra en el informe de validación del Panel para socios de Google Transit.
- En la columna "Mensaje informativo o de advertencia", se proporciona el mensaje que se muestra en el informe de validación del Panel para socios de Google Transit. Presenta un resumen de la advertencia o la información.
- En la columna "Sugerencias para solucionar el problema", se indican los principales pasos que debes seguir para resolver la advertencia.
| Valor enum | Mensaje informativo o de la advertencia | Sugerencias para solucionar el problema | 
|---|---|---|
| TRIP_UPDATE_SOME_STU_NOT_MATCHED | No se pudieron vincular algunas %(value) de las StopTimeUpdatesválidas especificadas para eltrip_id"%(trip_id)" con el viaje de GTFS. P. ej., position: %(index); stop_sequence: %(next_seq);stop_id:"%(stop_id)". | Asegúrate de proporcionar las StopTimeUpdatesen el orden correcto. | 
| VEHICLE_POSITION_DUPLICATE_TRIP_BLOCK_TRANSFER | Varios vehículos registran el viaje $(trip_id) de transbordo en bloque y la start_time$(timestamp_string). | Asegúrate de que solo haya un vehículo para un viaje determinado a una hora de inicio específica. | 
| INVALID_ALERT_ROUTE_NOT_MATCHED | Alerta descartada: No se pudo vincular el route_id"%(route_id)" con el feed GTFS. | Verifica si la programación estática es correcta y agrega la información de la ruta si falta. Tras publicar la nueva programación estática, corrige la referencia de route_iden el feed Realtime. | 
| INVALID_ALERT_STOP_NOT_MATCHED | Alerta descartada: No se pudo vincular el stop_id"%(stop_id)" con el feed GTFS. | Verifica si la programación estática es correcta y agrega la información de la parada
        si falta. Tras publicar la nueva programación estática, corrige la referencia de stop_iden el feed Realtime. | 
| INVALID_ALERT_TRIP_NOT_MATCHED | Alerta descartada: No se pudo vincular el trip_id"%(trip_id)" con el feed
        GTFS. | Verifica si la programación estática es correcta y agrega la información del viaje
        si falta. Tras publicar la nueva programación estática, corrige la referencia de trip_iden el feed Realtime. | 
| STOP_TIME_UPDATE_PREMATURE_ARRIVAL | La llegada de la StopTimeUpdatedel viaje "%(trip_id)" con elstop_id"%(stop_id)" y lastop_sequence%(next_seq) ocurre %(value) segundos antes que la de laStopTimeUpdateanterior con elstop_id"%(other_id)" y lastop_sequence%(prev_seq). | Revisa la hora de llegada y la de salida del stop_idespecificado o de los anteriores. Corrige los valores incorrectos para asegurarte de que las horas no desciendan. | 
| INVALID_ALERT_NO_INFORMED_ENTITIES | Se debe proporcionar, al menos, una entidad registrada. | Incluye una informed_entityrelevante en la alerta. | 
| PROTO_ENCODING_MISMATCH | La codificación .proto configurada difiere de la codificación recibida. | Proporciona el feed en el formato correcto. Si el problema persiste, comunícate con tu representante de Google Transit para obtener ayuda. | 
| STOP_TIME_UPDATE_PREMATURE_DEPARTURE | La salida de la StopTimeUpdatedel viaje "%(trip_id)" con elstop_id"%(stop_id)" y lastop_sequence%(next_seq) ocurre %(value) segundos antes que la de laStopTimeUpdateanterior con elstop_id"%(other_id)" y lastop_sequence%(prev_seq). | Revisa la hora de salida del stop_idespecificado o de los anteriores. Corrige los valores incorrectos para asegurarte de que las horas de salida no desciendan. | 
| DETOUR_MUST_SPECIFY_TIME | El desvío del viaje "%(trip_id)" por la parada "%(stop_id)" debe especificar una hora absoluta. | Incluye las horas exactas en el stop_idafectado para eltrip_idespecificado. | 
| ENTITY_MUST_HAVE_ALERTS | La entidad debe tener alertas. | Verifica que el contenido del feed esté completo y que cada mensaje de FeedEntityincluya información sobre las alertas del servicio. | 
| ENTITY_MUST_HAVE_POSITIONS | La entidad debe tener posiciones. | Verifica que el contenido del feed esté completo y que cada mensaje de FeedEntityincluya información sobre la posición del vehículo. | 
| ENTITY_MUST_HAVE_UPDATES | La entidad debe tener actualizaciones de viaje. | Verifica que el contenido del feed esté completo y que cada mensaje de FeedEntityincluya información sobre las actualizaciones de viaje. | 
| TIMESTAMP_FUTURE | La marca de tiempo %(timestamp) (%(timestamp_string)) del feed está adelantada %(diff_time) segundos (%(difftime_string)). Se utiliza la marca de tiempo de adquisición: %(localtime) (%(localtime_string)). | Asegúrate de proporcionar la marca de tiempo en la zona horaria UTC, en segundos después de la época. Verifica los relojes de tu servidor para asegurarte de que estén todos sincronizados, por ejemplo, con NTP. | 
| TIMESTAMP_PAST | La marca de tiempo %(timestamp) (%(timestamp_string)) del feed está atrasada %(diff_time) segundos (%(difftime_string)). Se utiliza la marca de tiempo de adquisición: %(localtime) (%(localtime_string)). | Vuelve a generar el feed Realtime con más frecuencia, incluso si el contenido sigue siendo el mismo o está vacío. | 
| NO_VALID_TEXT | El campo %(field) no tiene traducciones válidas. | Revisa los mensajes de TranslatedStringy corrige cualquier problema relevante, comoHTML_TAGS_FOUND,INVALID_URL_LENGTH,INVALID_TEXT_LENGTHoINVALID_URL. | 
| HTML_TAGS_FOUND | El campo %(field)(%(index)) contiene etiquetas HTML. | Quita todas las etiquetas HTML de dicho campo. | 
| INVALID_LANGUAGE | El campo %(field) (%(index)) tiene el código de idioma no válido "%(language)". | Establece el campo de idioma en un código de idioma BCP-47 válido. | 
| INVALID_URL | El campo %(field) (%(index)) tiene una URL no válida (se espera que se utilice una URL absoluta del tipo http o https). | Incluye una URL válida para la alerta. | 
| INVALID_TEXT_LENGTH | El campo %(field) (%(index)) tiene una longitud de %(length) (máximo de %(max_length)). | Acorta el texto proporcionado que suele mostrarse en pantallas pequeñas, como las de teléfonos celulares. Si deseas brindar más detalles a los usuarios, proporciona una referencia de URL en su lugar. | 
| INVALID_URL_LENGTH | El campo %(field) (%(index)) tiene una longitud de URL de %(length) (máximo de %(max_length)). | Proporciona una URL que se ajuste a los límites establecidos. | 
| MULTIPLE_UNSPECIFIED_LANGUAGE | El campo %(field) (%(index)) es una traducción repetida y no tiene un idioma configurado. | Revisa los mensajes de TranslatedString. Establece los valores correctos del campolanguagepara el que se proporciona más de una traducción. | 
| INVALID_TRIP_UPDATE_DELAY | La demora proporcionada en la actualización de viaje no es válida: %(value). | Revisa el campo delaydelentity_idespecificado y corrige el valor incorrecto. | 
| INVALID_TRIP_UPDATE_EVENT_TIME | La hora del evento de parada no es válida: %(timestamp). | Incluye TripUpdatessolo para los viajes en curso o que tendrán lugar en un futuro cercano. | 
| INVALID_TRIP_UPDATE_DEPARTURE_NO_TIME | No se proporcionaron los campos timenidelaypara la salida. | Incluye un campo timeodelay(o ambos) en cada mensaje deStopTimeEvent. Si no hay información disponible, omite el campodeparture. | 
| INVALID_TRIP_UPDATE_ARRIVAL_NO_TIME | No se proporcionaron los campos timenidelaypara la llegada. | Incluye un campo timeodelay(o ambos) en cada mensaje deStopTimeEvent. Si no hay información disponible, omite el campoarrival. | 
| MISSING_CONTENT_AND_EFFECT | No hay contenido ni efecto válidos. | Agrega effect,header_textodescription_texta la alerta. Si no hay información disponible, quitaalert. | 
| CUSTOM_PARSE_WARNING | Se produjo un error parcial al analizar el feed de formato personalizado: %(value_string). | Este error indica que no se pudo analizar una parte del feed Realtime. Abre un editor de texto para verificar el contenido del feed o vuelve a subir el feed. Si el error persiste, comunícate con tu representante de Google Transit para obtener ayuda. | 
| VEHICLE_POSITION_BAD_START_TIME | La hora de inicio especificada para el viaje $(trip_id) tiene una diferencia de %(diff_time) segundos respecto del inicio real del vehículo. | Especifica una hora de inicio del vehículo que coincida con la hora de inicio real del viaje. | 
| INVALID_TRIP_UPDATE_INCONSISTENT_IDS | El valor %(value) de stop_sequenceno coincide con la parada "%(stop_id)" del viaje "%(trip_id)". Se anulará con el valor %(next_seq) destop_sequencedel índice estático. | Asegúrate de que el valor del campo stop_sequencesea correcto y de que coincida con el destop_sequencepara los mismosstop_idytrip_iddel feed estático actual. | 
| INVALID_STOP_STOP_ID | StopTimeUpdatedescartada: No se pudo vincular elstop_id"%(stop_id)" que se proporcionó para el viaje "%(trip_id)" con el feed GTFS.
        Si está presente, se utiliza lastop_sequence%(value). | Verifica la precisión del feed estático. Si es necesario, corrige el valor de stop_idenstop_times.txtpara el viaje. Espera hasta que esté disponible la nueva versión del feed estático. Actualiza la referencia destop_iden el feed Realtime. | 
| INVALID_STOP_SEQUENCE_ID | StopTimeUpdatedescartada: No se pudo vincular lastop_sequence%(value) del viaje "%(trip_id)" con el feed GTFS. | Verifica la precisión del feed estático. Si es necesario, corrige el valor de stop_sequence. Espera hasta que esté disponible la nueva versión del feed estático. Actualiza la referencia destop_sequenceen el feed Realtime. | 
| INVALID_TRIP_UPDATE_ORDER | StopTimeUpdatedescartada: Hay un incumplimiento relacionado con el orden destop_sequencepara eltrip_id"%(trip_id)" con elstop_id"%(stop_id)" (si está presente). Lastop_sequence%(prev_seq) está seguida por la %(next_seq). | Asegúrate de establecer el orden de las StopTimeUpdatescon lastop_sequence. | 
| FEED_TIMESTAMP_CONSISTENTLY_IN_THE_PAST | La marca de tiempo del feed siempre está atrasada %(diff_time) segundos (%(difftime_string)). | Confirma que el valor de la marca de tiempo esté en la zona horaria UTC, en segundos después de la época. Confirma que los relojes de tu servidor estén sincronizados, por ejemplo, con NTP. Asegúrate de actualizar el feed de forma periódica. | 
| TIMESTAMP_MISSING | Falta el campo timestampen elFeedHeaderdel feed. | Completa el campo timestampdelFeedHeaderen segundos después de la época, en la zona horaria UTC. La marca de tiempo debe representar correctamente la hora de generación del feed. | 
| ENTITY_MORE_THAN_ONCE | El ID de FeedEntityaparece más de una vez en el feed. | Asegúrate de que todos los IDs de entidad sean únicos en el feed. | 
| PROTO_ASCII_HAS_BOM | El feed proporcionado comienza con una marca de orden de bytes (BOM). | Quita la marca de orden de bytes. Asegúrate de que el búfer de protocolo con formato de texto esté en UTF-8 sin una BOM. Te recomendamos que proporciones el búfer de protocolo en formato binario. | 
| TRIP_UPDATE_TIMESTAMP_CONSISTENTLY_IN_THE_FUTURE | La timestampde algunas actualizaciones de viaje siempre está adelantada %(diff_time) segundos (%(difftime_string)). | Confirma que el valor de timestampsiga el formato de la zona horaria UTC, en segundos después de la época. Confirma que los relojes de tu servidor estén sincronizados, por ejemplo, con NTP. Quita lasTripUpdatesdel feed para los viajes que se completaron hace más de una hora. | 
| VEHICLE_POSITION_TIMESTAMP_CONSISTENTLY_IN_THE_FUTURE | La marca de tiempo siempre está adelantada %(diff_time) segundos (%(difftime_string)). | Confirma que el valor de timestampsiga el formato de la zona horaria UTC, en segundos después de la época. Confirma que los relojes de tu servidor estén sincronizados, por ejemplo, con NTP. | 
| VEHICLE_POSITION_TIMESTAMP_CONSISTENTLY_IN_THE_PAST | La timestampsiempre está atrasada %(diff_time) segundos (%(difftime_string)). | Confirma que el valor de timestampsiga el formato de la zona horaria UTC, en segundos después de la época. Confirma que los relojes de tu servidor estén sincronizados, por ejemplo, con NTP. Quita lasVehiclePositionsdel feed para los viajes que se completaron hace más de una hora. | 
| UNKNOWN_TRIP_ID | El feed GTFS estático no reconoce el ID de viaje "%(trip_id)". | Verifica el feed estático para asegurarte de que contenga información correcta y actualizada.
        Asegúrate de que se esté utilizando la versión correcta del feed estático, o bien súbela si es necesario. Proporciona un trip_idexistente y preciso enTripDescriptor. | 
| TRIP_OUTSIDE_SERVICE_WINDOW | El viaje con el ID "%(trip_id)" no está en servicio a la hora especificada. | Verifica la precisión del feed estático. Agrega la información del viaje si falta. Espera hasta que esté disponible la nueva versión del feed estático. Corrige la referencia de trip_iden el feed Realtime. | 
| AMBIGUOUS_TRIP_DESCRIPTOR | El TripDescriptores ambiguo y no resuelve un solo viaje en un momento determinado. | Si el viaje se basa en la frecuencia, asegúrate de proporcionar un valor de start_timeválido y un valor destart_dateenTripDescriptor. | 
| INVALID_TRIP_UPDATE_FUTURE_TIMESTAMP | La marca de tiempo %(timestamp) (%(timestamp_string)) de TripUpdateestá adelantada %(diff_time) segundos (%(difftime_string)) respecto de la marca de tiempo del feed, que es %(localtime) (%(localtime_string)). | Verifica que la fuente del reloj tenga configurada la hora correcta. Verifica que las conversiones de zona horaria se realicen con precisión. El campo Vehicle.Position.timestampdebe seguir el formato de la zona horaria UTC, en segundos después de la época. | 
| INVALID_VEHICLE_POSITION_FUTURE_TIMESTAMP | La marca de tiempo %(timestamp) (%(timestamp_string)) de VehiclePositionestá adelantada %(diff_time) segundos (%(difftime_string)) respecto de la marca de tiempo del feed, que es %(localtime) (%(localtime_string)). | Verifica que la fuente del reloj tenga configurada la hora correcta. Verifica que las conversiones de zona horaria se realicen con precisión. El campo Vehicle.Position.timestampdebe seguir el formato de la zona horaria UTC, en segundos después de la época. | 
| INVALID_VEHICLE_POSITION_STALE_TIMESTAMP | La marca de tiempo %(timestamp) (%(timestamp_string)) de VehiclePositionestá atrasada %(diff_time) segundos (%(difftime_string)) respecto de la marca de tiempo del feed, que es %(localtime) (%(localtime_string)). | Quita del feed los vehículos fuera de servicio. Verifica que el reloj esté sincronizado y que las conversiones de zona horaria sean correctas. | 
| INVALID_ALERT_TIME_RANGE_END_PAST | El período finalizó hace más de un mes: %(time_end). | Quita las alertas (o los active_periods) que tengan una hora de finalización en el pasado y que ya no estén activas. | 
| INVALID_ALERT_TIME_RANGE_ORDER | El orden del período está invertido: (%(time_start), %(time_end)). | Verifica el valor de los campos active_period. El orden de estos campos podría invertirse. | 
| INVALID_ALERT_TIME_RANGE_START_FUTURE | El período comienza hace más de un año: %(time_start). | Incluye en las alertas una hora de inicio del active_periodque corresponda a un futuro cercano. | 
| STOP_TIME_AND_DELAY_MISMATCH | En la parada "%(stop_id)", el viaje "%(trip_id)" especifica valores contradictorios: la marca de tiempo %(timestamp) y un retraso de %(delay). Se establece un retraso de %(value). | Verifica que el feed Realtime coincida con el feed estático actualmente publicado. Asegúrate de que los campos delayytimedeStopTimeEventsean correctos y coherentes. Como alternativa, omite el campodelaypor completo y proporciona solo el campotime. | 
| INVALID_START_DATE | El viaje "%(trip_id)" tiene una fecha de inicio no válida, "%(value_string)". Se supondrá que la fecha correcta es la actual. El formato esperado es "AAAAMMDD". | Verifica el valor de start_date del viaje especificado. Asegúrate de que el valor sea correcto. | 
| INVALID_START_TIME | El viaje "%(trip_id)" tiene una hora de inicio no válida, "%(value_string)". El formato esperado es "HH:MM:SS". | Verifica el valor y el formato de start_timedel viaje especificado. Asegúrate de que sean correctos. | 
| VEHICLE_POSITION_DUPLICATE_TRIP | Varios vehículos registran el viaje $(trip_id) y la start_time$(timestamp_string). | Cambia la start_timedel viaje y laScheduleRelationshipaADDEDpara los viajes que no se basen en la frecuencia. | 
| VEHICLE_POSITION_CONVERTED_TO_ADDED | La relación de programación del viaje $(trip_id) se cambió a ADDED. | Este error es un efecto secundario de otro problema. Para poder solucionarlo, primero debes abordar ese problema. | 
| INVALID_TRIP_UPDATE_MISSING_IDS | La actualización de viaje contiene una stop_updatesinstop_sequencenistop_id. | Incluye un stop_ido unastop_sequence(o ambos) en el
        mensaje deStopTimeUpdate. | 
| MULTIPLE_ENTITIES_PER_TRIP | Actualización de viaje descartada: Se representa el mismo trip_id"%(trip_id)" con la misma hora de inicio que otra entidad con el ID %(value_string). | Asegúrate de que haya, como máximo, una TripUpdatepara cada viaje real.
        Asegúrate de que elTripDescriptorsea único en el feed. | 
| INVALID_TRIP_UPDATE_MISSING_CONTENT | La actualización de viaje para el trip_id"%(trip_id)" programado debe especificar, al menos, una actualización de hora de parada con datos o debe indicar un retraso. | Proporciona uno de los siguientes elementos: 
 | 
| TRIP_UPDATE_SUSPICIOUS_DELAY | El viaje con el trip_id"%(trip_id)" contiene un retraso presuntamente injustificado de %(difftime_string). | Verifica que la TripDescriptionse haya definido claramente, con untrip_id, unastart_datey unastart_time. Verifica que lasStopTimeUpdatestengan valores de tiempo que coincidan con los del viaje especificado. Verifica si hay algún problema ocasionado por una discrepancia en las zonas horarias, por ejemplo, sistart_dateystart_timeestán en la zona horaria local, pero todos los campos de hora expresados como números enteros deFeedMessageestán en segundos después de la época. | 
| TRIP_UPDATE_OBSOLETE | El viaje con el trip_id"%(trip_id)" finalizó hace %(difftime_string). | Quita los viajes del feed unos minutos después de que lleguen a la parada final. | 
| UNSUPPORTED_ADDED_WITH_BLOCK_TRANSFER | No se permite utilizar un TripDescriptorcon laschedule_relationshipADDEDpara el viaje %(trip_id) con un transbordo en bloque. | Utiliza el valor ADDEDenScheduleRelationshipsolo para indicar los viajes aislados. | 
| UNSUPPORTED_ADDED_WITHOUT_TIMES | No se permite utilizar un TripDescriptorcon laschedule_relationshipADDEDpara el viaje %(trip_id) sin especificar horarios. | Proporciona una start_datey unastart_timepara indicar cuándo comenzó el viaje agregado. | 
| TRIP_UPDATE_TOO_OLD | La marca de tiempo %(timestamp) (%(timestamp_string)) de TripUpdateestá atrasada %(diff_time) segundos (%(difftime_string)). La hora actual es %(localtime) (%(localtime_string)). Se descartó laTripUpdate. | Genera el feed de forma periódica y mantén los datos actualizados. Asegúrate de que la marca de tiempo de TripUpdatesea correcta y siga el formato de la zona horaria UTC, en segundos después de la época. Quita los viajes del feed unos minutos después de que lleguen a la parada final. | 
| INVALID_TRIP_UPDATE_DELAY_USAGE | El campo delaydeTripUpdatese especifica junto con la hora enStopTimeUpdates. | Asegúrate de utilizar solo una de las siguientes opciones, no ambas, para proporcionar información sobre los tiempos: 
 | 
| INVALID_VEHICLE_POSITION_VEHICLE_ID_MISSING | VehiclePositionno tiene un identificador de vehículo. | Proporciona un identificador de vehículo. Asegúrate de que este valor sea estable en todas las versiones del feed en las que el vehículo esté en servicio. | 
| INVALID_VEHICLE_POSITION_INVALID_POSITION | VehiclePositionno tiene información de posición válida. | Proporciona valores válidos para los campos latitudeylongitude. | 
| INVALID_VEHICLE_POSITION_TIMESTAMP_MISSING | VehiclePositionno tiene una marca de tiempo. | Proporciona un valor de marca de tiempo para indicar cuándo se recopiló la información de VehiclePosition, en segundos después de la época y en la zona horaria UTC. |