private static T getAttribute(alias decl, T)(T default_value)
{

enum val = findFirstUDA!(T, decl);
static if (val.found) return val.value;
else return default_value;

}

alias member = TypeTuple!(__traits(getMember, T, mname))[0];
enum fname = 

getAttribute!(member)(NameAttribute(underscoreStrip(mname))).name;

I don't see this on the vibe.d master branch, it looks more like this now:

enum fname = getAttribute!(T, mname, NameAttribute)(NameAttribute(underscoreStrip(mname))).name;

and

private static T getAttribute(TT, string mname, T)(T default_value)
{
	enum val = findFirstUDA!(T, __traits(getMember, TT, mname));
	static if (val.found) return val.value;
	else return default_value;
}

Which leads me to believe that the cause of this error is because D expects this to be defined when passing a class / struct member alias instead of the type / member name as a template parameter. It could be a compiler bug... but I'm not so sure why the vibe.d master would trigger this sort of error, because I couldn't find your reproduction in the master branch. Did you use an older version?