nikivdev/code · error
No flow.toml found in current directory or global config
Error message
No flow.toml found in current directory or global config
What it means
proxy_command needs a flow.toml configuration to know what to proxy; it looks in the current directory first and falls back to the global config (~/.config/flow/flow.toml). When neither exists it bails with this message, because proxy actions cannot proceed without configuration.
Source
Thrown at src/main.rs:1036
}
/// Handle proxy commands
fn proxy_command(cmd: ProxyCommand) -> Result<()> {
// Helper to load config from current directory
let load_project_config = || -> Result<flowd::config::Config> {
let cwd = std::env::current_dir()?;
let flow_toml = cwd.join("flow.toml");
if flow_toml.exists() {
flowd::config::load(&flow_toml)
} else {
// Try global config
let global = dirs::config_dir()
.map(|d| d.join("flow").join("flow.toml"))
.filter(|p| p.exists());
if let Some(path) = global {
flowd::config::load(&path)
} else {
bail!("No flow.toml found in current directory or global config");
}
}
};
match cmd.action {
ProxyAction::Start(opts) => {
// Load config
let config = load_project_config()?;
let proxy_config = config.proxy.unwrap_or_default();
let targets = config.proxies;
if targets.is_empty() {
bail!("No proxy targets configured. Add [[proxies]] to flow.toml");
}
// Override listen if provided
let proxy_config = if let Some(listen) = opts.listen {
proxy::ProxyConfig {View on GitHub (pinned to a747e741ae)
Solutions
- cd into the project directory that contains flow.toml before running the proxy command.
- Create the global config at ~/.config/flow/flow.toml (Linux) or the platform equivalent of dirs::config_dir()/flow/flow.toml.
- Create a flow.toml in the current directory with the required proxy settings.
- Verify with `ls flow.toml` / `ls "${XDG_CONFIG_HOME:-$HOME/.config}/flow/flow.toml"` which path is expected.
Example fix
# before cd /tmp && flow proxy start # no flow.toml here # after cd ~/projects/myapp # contains flow.toml flow proxy start # or create a global one: mkdir -p ~/.config/flow && printf '[proxy]\nport = 8080\n' > ~/.config/flow/flow.toml
Defensive patterns
Strategy: validation
Validate before calling
use std::path::PathBuf;
fn flow_config_present() -> bool {
PathBuf::from("flow.toml").exists()
|| dirs::config_dir().map(|d| d.join("flow").join("flow.toml").exists()).unwrap_or(false)
}
if !flow_config_present() {
eprintln!("create flow.toml in the project dir or ~/.config/flow/flow.toml");
std::process::exit(1);
} Type guard
fn resolve_flow_config() -> Option<PathBuf> {
let local = PathBuf::from("flow.toml");
if local.exists() { return Some(local); }
dirs::config_dir().map(|d| d.join("flow").join("flow.toml")).filter(|p| p.exists())
} Try / catch
match proxy_command(args) {
Err(e) if e.to_string().contains("No flow.toml found") => {
eprintln!("Run from a project dir containing flow.toml, or create ~/.config/flow/flow.toml");
std::process::exit(1);
}
other => other?,
} Prevention
- Run proxy commands from the project root containing flow.toml.
- Create the global config once after install: ~/.config/flow/flow.toml.
- Check for the config file in scripts before invoking proxy actions.
- Keep the filename exactly `flow.toml` — alternate names are not discovered.
When it happens
Trigger: Running a proxy subcommand (ProxyAction::Start etc.) outside any directory containing flow.toml while no global config file exists at the platform config dir (dirs::config_dir()/flow/flow.toml).
Common situations: Running the proxy from $HOME or a temp dir instead of the project root; fresh install where the global config was never created; config file named differently or placed in a nonstandard location.
Understand the failure class
Background: "Config file not found": what it means and how to fix it in docker-sync, Maven, Vagrant, Turborepo and other tools — this error's family across 60 libraries.
Related errors
- No flow.toml found. Use --url to specify a URL to check.
- No proxy targets configured. Add [[proxies]] to flow.toml
- No profile selected.
- fzf not found on PATH – install it to use fuzzy selection.
- expected [{}] to be a table in global flow config
AI-assisted analysis of nikivdev/code@a747e741ae (2026-09-01).
Data as JSON: /api/errors/56a3da2f343bdc54.
Report an issue: GitHub.