I've found a reason of your first error encountered.
It's possible that broken rule form (this one from screenshot) allowed to put NULL value as a desired crits value.
Then RB loading rules in view mode creates human readable crits and called with permission => NULL it produces error.
The line responsible for calling this error is
if (!isset($record[$args['id']])) trigger_error($args['id'].' - unknown field for record '.serialize($record), E_USER_ERROR);
So you can read that your $record variable contained field 'permission', but it's nature of
isset, that NULL is NOT set, so it returned an error. I think that there should be
array_key_exists instead of
isset.
RecordBrowser is a huge chunk of code... put in one module. It's really powerful, but really messy and not well designed. Arek, who was responsible for this great module (and great mess :wink:) is no longer working with us. There are plans to improve EPESI code and stability. And fix RB bad design patterns, but it will be long lasting refactor.
Still I don't have any idea about broken form.
Regards,
Adam