Me on Twitter yesterday: "Had to hack Moose::Meta::Method::throw_error() to make it Carp::confess() to tell how an attribute constraint was being violated. Grrr." and "T'was the attribute builder that did it.".
This isn't the first time that I've had to muck with throw_error() to tell what's going on. Only showing the stack from the caller and up makes debugging harder.