In my experience, such cases do eventually timeout and give an error. I haven’t seen it hang indefinitely before just because a URL was wrong. For cases that do hang, it is usually because ExternalProject/FetchContent is waiting for user input to enter a password for a SSH key or something similar. To check if that’s what’s happening to you, add USES_TERMINAL_DOWNLOAD YES to the ExternalProject_Add() or FetchContent_Declare() arguments.