When go tool pprof encounters an error, it writes to STDERR but still exits with a 0 status code. This means that Go's own exec package does not detect errors from the "go tool pprof" command.
Here is some code that produces the issue.
cmd := exec.Command("go", "tool", "pprof", "http://thiswillcauseanerror.com")
out, err := cmd.Output() // error is nil!
For now, I am checking if anything is written to STDERR as a workaround.