beego/beego · error

beego: non-pointer passed to Bind: ${key}

Error message

beego: non-pointer passed to Bind: ${key}

What it means

Error "beego: non-pointer passed to Bind: ${key}" thrown in beego/beego.

Source

Thrown at server/web/context/input.go:446

		}
	} else if err := input.Context.Request.ParseForm(); err != nil {
		return errors.New("Error parsing request body:" + err.Error())
	}
	return nil
}

// Bind data from request.Form[key] to dest
// like /?id=123&isok=true&ft=1.2&ol[0]=1&ol[1]=2&ul[]=str&ul[]=array&user.Name=astaxie
// var id int  beegoInput.Bind(&id, "id")  id ==123
// var isok bool  beegoInput.Bind(&isok, "isok")  isok ==true
// var ft float64  beegoInput.Bind(&ft, "ft")  ft ==1.2
// ol := make([]int, 0, 2)  beegoInput.Bind(&ol, "ol")  ol ==[1 2]
// ul := make([]string, 0, 2)  beegoInput.Bind(&ul, "ul")  ul ==[str array]
// user struct{Name}  beegoInput.Bind(&user, "user")  user == {Name:"astaxie"}
func (input *BeegoInput) Bind(dest interface{}, key string) error {
	value := reflect.ValueOf(dest)
	if value.Kind() != reflect.Ptr {
		return errors.New("beego: non-pointer passed to Bind: " + key)
	}
	value = value.Elem()
	if !value.CanSet() {
		return errors.New("beego: non-settable variable passed to Bind: " + key)
	}
	typ := value.Type()
	// Get real type if dest define with interface{}.
	// e.g  var dest interface{} dest=1.0
	if value.Kind() == reflect.Interface {
		typ = value.Elem().Type()
	}
	rv := input.bind(key, typ)
	if !rv.IsValid() {
		return errors.New("beego: reflect value is empty")
	}
	value.Set(rv)
	return nil
}

View on GitHub (pinned to 939cfde380)

When it happens

Trigger: Thrown at server/web/context/input.go:446 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of beego/beego@939cfde380 (2026-08-15). Data as JSON: /api/errors/ab81d3cab468a3f8. Report an issue: GitHub.