updated: framework.errors() stores error as string