for a couple of hours, I am getting the following error when trying to build Docker images based on ROS melodic:

3.712 W: GPG error: http://snapshots.ros.org/melodic/final/ubuntu bionic InRelease: The following signatures were invalid: EXPKEYSIG AD19BAB3CBF125EA ROS Spanshot builder <[email protected]>
3.712 E: The repository 'http://snapshots.ros.org/melodic/final/ubuntu bionic InRelease' is not signed.

Yesterday everything was working fine, yo, Is this because Melodic is EOL? And if so, is there any way to continue building docker images based on it? Unfortunately, I work with drivers that were developed exclusively for Melodic, therefore not possible to upgrade to other distros. Any help is appreciated.

  • $\begingroup$ Me too... I think this would be better to be discussed on Discourse: discourse.ros.org/t/again-melodic-gpg-key-expired/34733 . Unfortunately, it is not the first time Open Robotics let a GPG key expire without timely substitution. They said they've implemented better processes. So maybe the switch over to Intrinsic broke these processes? $\endgroup$ Commented Nov 20, 2023 at 9:21
  • $\begingroup$ Thanks for your answer, since I am new to this kind of forums, could you explain why the ROS discourse would be a better place to post this? $\endgroup$
    – fabioDFKI
    Commented Nov 21, 2023 at 14:44
  • $\begingroup$ It would not, in the end. OSRF suggested github.com/osrf/infrastructure instead. The division between discourse and this site is that on this site, people should ask specific questions for practical problems, while discourse is more like a "meta" talk - either planning the future of ROS, discussing concepts or announcing changes in ROS. $\endgroup$ Commented Nov 21, 2023 at 17:46

3 Answers 3


Cross-reference from docker_images: the key has been updated. In short: update the key in your installations and for new installations do nothings (be careful with your cache).


As a brief summary the GPG key for snapshots.ros.org is expired. Since this is the default apt source in the official docker containers this leads to the described error whenever apt update is called.

EDIT: The key has since been updated. See the cross reference provided in this answer: https://robotics.stackexchange.com/a/105553/37364

You can follow the original issue here: https://github.com/osrf/docker_images/issues/697
and the related discussion here: https://discourse.ros.org/t/again-melodic-gpg-key-expired/34733

The apt repo packages.ros.org that is used in the desktop install instructions on docs.ros.org (see here), however, works normally. Thus, as a workaround you can remove snapshot.ros.org form the docker container and and use packages.ros.org until the key issue is fixed.

e.g. like this:

FROM ros:melodic

RUN rm /etc/apt/sources.list.d/ros2-snapshots.list
RUN apt update && apt install curl
RUN curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

Thanks to @jose-luis-rivero for answer. It works with just a small correction for me.


apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 4B63CF8FDE49746E98FA01DDAD19BAB3CBF125EA


apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 4B63CF8FDE49746E98FA01DDAD19BAB3CBF125EA
  • $\begingroup$ thanks for your answer, so, I should add this directly to my docker file? $\endgroup$
    – fabioDFKI
    Commented Nov 21, 2023 at 14:46
  • $\begingroup$ I added to my docker hub and you can use this image "image: ibrahimztrk/melodic_updated" in your ci file. If you want you can use this image or modify your docker image. $\endgroup$ Commented Nov 22, 2023 at 10:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.