The addition of margin-based flymake indicators in Emacs 30 (for use in terminal frames) also led to a regression: the margin-based indicators are uglier and should not be used when not necessary, but the code for determining the default for flymake-indicator-type was wrong and caused margin indicators to be used sometimes on graphical frames. The simplest fix, suitable for backporting, is to always default to fringes. Please apply the attached patch and backport to Emacs 30.