You must be giving it a hash instead of an array ... don't know how you managed to write that :)
[% MACRO blocker BLOCK %]
[% FOREACH element IN array.sort('name') %]
[% element.name %]
[%- END -%]
[%- END -%]
[%-
SET array = [
{ name => 'foo', value => 1 },
{ name => 'bar', value => 2 },
{ name => 'baz', value => 3 }
];
blocker;
%]
[%-
SET array = [ { name => 'bar', value => 2 }, ];
blocker;
%]
[%-
## A HASH IS NOT AN ARRAY OF HASHES
SET array = { name => 'bar', value => 2 };
blocker;
%]
yadayadayada
* bar
* baz
* foo
* bar
*
*