wtfutil/wtf · error

could not find board with name

Error message

could not find board with name %s

What it means

getBoardID searches the boards accessible to the configured Trello API key/token for one whose name matches the configured board name, and returns this error when no board matches. Trello boards are matched by exact name.

Solutions

  1. Compare the configured name exactly (case and whitespace) with the board name in Trello
  2. Re-fetch boards: log into Trello and confirm the account tied to your API token can see the board
  3. Use the board's short-link/ID instead of a name if renames keep breaking config
  4. Regenerate the Trello token if it belongs to the wrong account

Example fix

// before
boardName := "My Tasks"   // board actually named "my tasks"
// after
boardName := "my tasks"
Defensive patterns

Strategy: validation

Validate before calling

boards, _ := client.GetBoards(trello.Defaults())
names := map[string]bool{}
for _, b := range boards { names[b.Name] = true }
if !names[boardName] { return fmt.Errorf("board %q not visible to token", boardName) }

Type guard

func boardExists(boards []trello.Board, name string) bool {
    for _, b := range boards { if b.Name == name { return true } }
    return false
}

Try / catch

id, err := getBoardID(client, boardName)
if err != nil {
    if strings.HasPrefix(err.Error(), "could not find board") {
        return fmt.Errorf("check Trello config: %w", err)
    }
    return err
}

Prevention

When it happens

Trigger: Setup() with a boardName that matches none of the boards returned by client.GetBoards — name typo, wrong-case name, or the board not shared with the account owning the token.

Common situations: Board renamed in Trello after the widget config was written; board belonging to another team/account than the API token's user; trailing whitespace or case mismatch in config; revoked or wrong-scope token that can't see the board.

Understand the failure class

Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.

Related errors


AI-assisted analysis of wtfutil/wtf@bb838c1ccb (2026-09-03). Data as JSON: /api/errors/5d399fc2958fd5b6. Report an issue: GitHub.

Appendix: source

Thrown at modules/todo_plus/backend/trello.go:55

func getBoardID(client *trello.Client, username, boardName string) (string, error) {
	member, err := client.GetMember(username, trello.Defaults())
	if err != nil {
		return "", err
	}

	boards, err := member.GetBoards(trello.Defaults())
	if err != nil {
		return "", err
	}

	for _, board := range boards {
		if board.Name == boardName {
			return board.ID, nil
		}
	}

	return "", fmt.Errorf("could not find board with name %s", boardName)
}

func getListId(client *trello.Client, boardID string, listName string) (string, error) {
	board, err := client.GetBoard(boardID, trello.Defaults())
	if err != nil {
		return "", err
	}

	boardLists, err := board.GetLists(trello.Defaults())
	if err != nil {
		return "", err
	}

	for _, list := range boardLists {
		if list.Name == listName {
			return list.ID, nil
		}
	}

View on GitHub (pinned to bb838c1ccb)