Too Many Return Values

too many return values have (int, error) want (int)

Quick Answer

Your function returns more values than its signature declares. Update the return statement or the function signature to match.

Why This Happens

Go enforces that the number of values in a return statement matches the function's declared return types. If the function signature says it returns int but your code returns int and error, the compiler rejects it.

The Problem

func divide(a, b int) int {
    if b == 0 {
        return 0, fmt.Errorf("division by zero") // too many return values
    }
    return a / b, nil
}

The Fix

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("division by zero")
    }
    return a / b, nil
}

Step-by-Step Fix

  1. 1

    Identify the mismatch

    Read the error to see how many values are being returned versus how many the signature expects.

  2. 2

    Decide on the signature

    Determine if the function should return the additional values by updating the signature, or if the extra return values should be removed.

  3. 3

    Update all return statements

    Ensure every return statement in the function matches the updated signature.

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