RangeError (index): Invalid value

RangeError (index): Invalid value: Not in inclusive range 0..2: 3

Quick Answer

You tried to access a list index that does not exist.

Why This Happens

In Dart, accessing a list index that is out of bounds throws a RangeError. This happens when the index is negative or greater than or equal to the list length. Always verify the list length before accessing elements by index.

The Problem

final items = ['a', 'b', 'c'];
print(items[3]); // Index 3 doesn't exist, max is 2

The Fix

final items = ['a', 'b', 'c'];
if (items.length > 3) {
  print(items[3]);
} else {
  print('Index out of range');
}

Step-by-Step Fix

  1. 1

    Identify the error

    Look at the error message: RangeError (index): Invalid value. This tells you the index and the valid range.

  2. 2

    Find the cause

    Check where you access list elements by index and verify the index is within bounds, especially with dynamic data.

  3. 3

    Apply the fix

    Add bounds checking before accessing list elements, or use safe methods like elementAtOrNull.

Bugsly catches this automatically

Bugsly's AI analyzes this error pattern in real-time, explains what went wrong in plain English, and suggests the exact fix — before your users even report it.

Try Bugsly free