Looks like the front-end didn't properly fix the AssociativeArray() abstraction in 2.064, and the back-end is still being given junk AA types where structs are expected. This should be probably fixed in 2.065 or 2.066 IIRC with Daniel's fixes that remove AssociativeArray entirely from the compiler and switches AA struct template implementation over to UFCS. In the call: pool.execTransaction(...) Got: param_4 => AssociativeArray(null) of type string[string]; Expected: I suspect changing this line would fix also: module db.pool; --- InputRange!(immutable Bson) execTransaction(string[] commands , string[] params = [], uint[] argnums = [] - , string[string] vars = AssociativeArray!(string, string)()) shared + , string[string] vars = null) shared in { ---