url-retrieve-synchronously unexpectedly returns an empty buffer: emacs -Q --eval '(with-current-buffer (url-retrieve-synchronously " https://google.com") (print (buffer-string)))' --batch Contacting host: google.com:443 "" If I add (sit-for 2) in url-retrieve-synchronously after the (url-retrieve ...) call: (setq asynch-buffer (url-retrieve url (lambda (&rest ignored) (url-debug 'retrieval "Synchronous fetching done (%S)" (current-buffer)) (setq retrieval-done t asynch-buffer (current-buffer))) nil silent inhibit-cookies)) (sit-for 2) then I see the expected output. In GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.5) of 2019-09-22, modified by Debian built on x86-grnet-01 Windowing system distributor 'The X.Org Foundation', version 11.0.12004000 System Description: Debian GNU/Linux 10 (buster) Recent messages: var a=window.location,b=a.href.indexOf(\"#\");if(0<=b){var c=a.href.substring(b+1);/(^|&)q=/.test(c)&&-1==c.indexOf(\"#\")&&a.replace(\"/search?\"+c.replace(/(^|&)fp=[^&]*/g,\"\")+\"&cad=h\")};