First things first:
There is NO apply or digest called in the code, we use only timeout.
The error appears to be random. Sometimes it occurs directly after start on the first click, sometimes not, sometimes on any other button.
I could find this error only on iOS 8+9. And it seems it occurs with ionic1.2.4 but not with 1.1.0.
This is the error message:
app.home: [$rootScope:inprog] $digest already in progress
http://errors.angularjs.org/1.4.3/$rootScope/inprog?p0=%24digest
file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:13410:32
beginPhase@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:29558:31
$apply@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:29302:21
file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:62431:19
dispatch@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/jquery-2.1.3/js/jquery.min.js:3:7524
handle@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/jquery-2.1.3/js/jquery.min.js:3:5605
dispatchEvent@[native code]
triggerMouseEvent@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:2963:20
tapClick@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:2952:20
tapTouchEnd@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:3081:13
send@[native code]
file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:23872:15
sendReq@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:23691:21
serverRequest@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:23403:23
processQueue@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:27925:30
file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:27941:39
$eval@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:29204:28
$digest@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:29015:36
$apply@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:29309:31
done@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:23722:53
completeRequest@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:23894:15
requestLoaded@file:///private/var/mobile/Containers/Bundle/Application/26C06B0A-EEFE-4992-AD4F-240097E9CD44/Matrix.app/www/lib/ionic-1.2.4/js/ionic.bundle.js:23835:24
I’ve read many solutions, but not one has worked so far.