If you change the timezone while Jenkins is running, the value of Run.ID_FORMATTER in some threads will reflect the new TZ while that in other threads reflects the old TZ. (Apparently SimpleDateFormat copies the TZ in effect when it was constructed.)
In particular, executor threads (which create the ID) are likely to use the old value while HTTP service threads are likely to use the new value. The result is that Run.rootDir when evaluated from an HTTP thread refers to a nonexistent directory, so the console appears to be empty, etc.
Since the format string omits Z the build’s ID is also ambiguous—must be interpreted according to the server’s local TZ.