Google App Engine Golang, controlador: mala conexión

Tengo un código que funciona en el servidor GAE local pero una vez que lo publico en GAE arroja el error "controlador: mala conexión".

El siguiente código genera un nuevo * sql.DB:

func NewDb() (*sql.DB, error) {
  cloud := os.Getenv("dbcloud")
  local := os.Getenv("dblocal")
  if appengine.IsDevAppServer() {
    return sql.Open("mysql", "root@tcp("+local+":3306)/dbo")
  }
  return sql.Open("mysql", "root@cloudsql("+cloud+")/dbo")
}

En mi app.yaml tengo lo siguiente:

env_variables:
  dbcloud: 'projectid:instancename'
  dblocal: 'xxx.xxx.xxx.xxx'

Parece que devuelve un nuevo * sql.DB correctamente, pero una vez que empiezo a usar declaraciones preparadas es cuando las cosas comienzan a romperse.

db, err := NewDb() // err is nil
stmt, err := db.Prepare("INSERT INTO dbo.Users (Id) VALUES (?)") // err is driver: bad connection

¡He estado luchando con esto durante una hora y probablemente estoy haciendo algo muy estúpido, agradecería cualquier ayuda!