UnsatisfiableError in conda SAT solver when resolving conflicting package versions
0 reputation · 27 Jul 2025, 11:09 UTC
0 reputation · 27 Jul 2025, 11:09 UTC
Goal: receive alerts only when conda reports an UnsatisfiableError during environment creation or update, while avoiding noise from routine channel metadata refresh messages that appear in Navigator or CLI logs.
Constraints: Anaconda Navigator aggregates notifications from conda CLI and GUI, and conda configuration flags such as auto_update and channel_priority affect when solver runs; there is no built‑in filter to separate error‑level events from informational channel updates. Uncertainty: whether enabling libmamba solver changes the verbosity or error messaging, and if logging levels can be tuned per interface.
Can conda be configured to emit only error‑level notifications (e.g., UnsatisfiableError) and suppress INFO‑level channel metadata refresh messages in both CLI and Navigator?
Does switching the solver backend to libmamba alter the verbosity or format of unsatisfiability reports, making them easier to filter?
Is there a setting in .condarc or Anaconda Navigator that allows per‑environment alert thresholds without affecting global auto_update behavior?
Yes for the conda CLI, no for Anaconda Navigator, and no for per-environment thresholds. Set log_level to error to suppress INFO channel-metadata refresh messages while keeping UnsatisfiableError visible. Navigator has no log-level notification filter, and .condarc applies log settings globally, not per environment.
Conda's log level is global across environments. When set to error, informational messages such as channel metadata refreshes are suppressed, while solver failures including UnsatisfiableError are still printed. auto_update and channel_priority control when the solver runs, not how verbose its output is.
Navigator aggregates CLI and GUI notifications. It offers no configuration option to filter by log level, so channel-refresh messages can still appear in the UI even when the CLI is quiet. The libmamba solver respects the same log_level setting and usually produces more detailed unsatisfiable diagnostics, though its message format may differ from the classic solver.
conda config --set log_level error
conda config --show log_level
conda config --set solver libmamba
For a one-off command without changing configuration:
CONDA_LOG_LEVEL=error conda create --name testenv python=3.10
conda config --show log_level returns error.UnsatisfiableError prints and INFO channel-refresh lines are absent.This assumes conda 23.0 or later, where log_level accepts string values such as error. Older conda releases use an integer verbosity flag instead. Navigator behavior is based on current documented aggregation behavior and could change in future releases. Setting log_level to error may also hide non-error warnings such as deprecation notices.
What version of conda are you running? If it is older than 23.0, the recommendation changes from log_level error to the integer verbosity flag, so this detail determines which command applies.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.