Back from vacation. I peeked at the source code:
if (relative) {
if (!scope.containsKey("imageNum")) {
throw new ElementException("Relative indexing in ja:fileiterator not allowed in this scope", element.getContent());
}
int current = (Integer)scope.get("imageNum") - 1;
start += current;
}
In plain English, what produces this error is if you try a relative iteration without the presence of the "imageNum" variable. That can, for instance happen if you issue a relative iteration in a custom page or in index.htt, outside of a ja:fileiterator element.