I'd like job-level retries that are triggered by the job scripts themselves. E.g. if they detect that an android emulator or Xcode has failed.
E.g. by scraping specific error messages from the tools' output, or some kind of end-of-job ping for emulators.
Retrying for everything (https://circleci.com/changelog/automatic-retry-of-workflows-released/) masks occasional fails (something tests are specifically supposed to find for you). Retrying for specific things doesn't have this problem.
A job could trigger a retry be creating a file whose path is specified by a circleci-provided env. var. The reason could (optionally) be the file's content.