type 'String' is not a subtype of type 'int'

type 'String' is not a subtype of type 'int'

Quick Answer

A String value was used where an int was expected.

Why This Happens

In Dart, types are strict and implicit conversions do not happen. This commonly occurs when JSON data contains a number as a string (e.g., "42" instead of 42) but the Dart code expects an int. Use int.parse() or int.tryParse() for conversion.

The Problem

final json = {'count': '42'};
final int count = json['count']; // String is not int

The Fix

final json = {'count': '42'};
final int count = int.parse(json['count']);

Step-by-Step Fix

  1. 1

    Identify the error

    Look at the error message: type 'String' is not a subtype of type 'int'. This means a String was assigned where an int was expected.

  2. 2

    Find the cause

    Check JSON responses or dynamic data where numbers might be represented as strings.

  3. 3

    Apply the fix

    Use int.parse() or int.tryParse() for safe conversion, and handle potential FormatException.

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