There are two distinct kinds. Benign repainting happens on the current unclosed bar and resolves when the bar closes. Serious repainting changes the signal on bars that have already closed, which means the chart you are looking at never actually existed in real time.
zigzag-indicator repaints by design, and so do most swing or fractal labels, because a swing point cannot be confirmed until later bars print. Indicators that use future-shifted data, such as the chikou-span, can also produce lookahead bias if coded carelessly.
Any backtest touching a repainting indicator will be optimistic, often spectacularly so. The test is simple: replay the chart bar by bar, using bar-replay, and check whether the signal appeared at the time the historical chart claims it did.
Related: zigzag-indicator, bar-replay, backtesting, indicator-lag, overfitting