Return errors, rather than throwing
Use a version of apac that returns errors to callback