tonhowtf/omniget · error
secao ' ' nao encontrada no board
Error message
secao '{}' nao encontrada no board {} What it means
When resolving a board-section target, the library lists the board's sections (via board_sections) and searches for one matching the requested section by slug or case-insensitive title. If none matches, it raises this error naming the section and the board. It is a lookup failure over an enumerated list, thrown after a successful board fetch.
Solutions
- Run user_boards()/board_sections first and pick the exact slug from the returned list.
- Match the section slug exactly as Pinterest generated it (lowercased, hyphenated, accents stripped).
- Verify the section still exists on the board in the Pinterest UI.
- Catch the error and fall back to the board's main feed if section targeting is optional.
Example fix
// before
api.section_feed(user, slug, "Receitas").await?;
// after
let board = api.board(user, slug).await?;
let secs = api.board_sections(&board.id).await?;
let wanted = secs.iter().find(|s| s.slug == "receitas")
.ok_or_else(|| anyhow!("available: {:?}", secs.iter().map(|s| &s.slug).collect::<Vec<_>>()))?; Defensive patterns
Strategy: validation
Validate before calling
let secs = api.board_sections(&board.id).await?;
let slugs: Vec<_> = secs.iter().map(|s| s.slug.clone()).collect();
anyhow::ensure!(slugs.iter().any(|s| s == §ion), "section '{section}' not in {slugs:?}"); Type guard
fn find_section<'a>(secs: &'a [Section], name: &str) -> Option<&'a Section> {
secs.iter().find(|s| s.slug == name || s.title.eq_ignore_ascii_case(name))
} Try / catch
match api.section_feed(user, slug, section).await {
Ok(f) => use_feed(f),
Err(e) if e.to_string().contains("nao encontrada no board") => fallback_to_board_feed(user, slug).await?,
Err(e) => return Err(e),
} Prevention
- Always enumerate sections first and match by slug
- Normalize user input (lowercase, strip accents) before matching
- Fall back to the board's main feed when section is optional
- Re-check section names after board owners edit them
When it happens
Trigger: Calling the section target resolution (e.g. feed_for(Target::Section{user, slug, section})) with a section name/slug that does not exist on that board, is misspelled, or differs in punctuation/accents from the board's actual section titles.
Common situations: Hardcoded section names in configs after the board owner renamed or deleted a section; accent/case differences (Portuguese titles); boards whose pins live in the main feed, not in any section.
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
- chave nao encontrada
- o Pinterest nao devolveu esse pin
- board nao encontrado
- perfil nao encontrado
- Pin not found
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/f56f77795486e34e.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/tools/pinterest/api.rs:1293
Feed::Board {
board_id: b.id.clone(),
include_sections: true,
},
b.name,
))
}
Target::Section {
user,
slug,
section,
} => {
let b = self.board(user, slug).await?;
let secs = self.board_sections(&b.id).await?;
let sec = secs
.into_iter()
.find(|x| &x.slug == section || x.title.eq_ignore_ascii_case(section))
.ok_or_else(|| {
anyhow!("secao '{}' nao encontrada no board {}", section, b.name)
})?;
Ok((
Feed::Section { section_id: sec.id },
format!("{} · {}", b.name, sec.title),
))
}
Target::User { username } => Ok((
Feed::UserPins {
username: username.clone(),
},
username.clone(),
)),
Target::UserCreated { username } => Ok((
Feed::UserCreated {
username: username.clone(),
},
format!("{} (criados)", username),
)),View on GitHub (pinned to 8600b91f42)