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.

Got the actual stack trace?

Paste it into our free AI explainer to get the cause and the fix for your specific case — no signup, nothing to install.

Explain my error

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