GitoxideLabs/gitoxide · info · anyhow::Error
Only human format is supported right now
Error message
Only human format is supported right now
What it means
`gix status show` rejects any output format other than Human, bailing before computing status. JSON (serde) output for status is not implemented yet in gitoxide-core, so the flag is explicitly refused up front.
Solutions
- Use the default human output
- Parse the simplified human format in your tooling as a stopgap
- Use `git status --porcelain` if a stable machine format is required
- Track gitoxide releases for status JSON support
Example fix
// before gix status show --format json // after gix status show
Defensive patterns
Strategy: validation
Validate before calling
[ "$fmt" = "human" ] || { echo "status show supports only human output" >&2; exit 2; } Try / catch
if ! gix status show --format json 2>err.log; then grep -q 'Only human format' err.log && gix status show fi
Prevention
- Check --help before assuming JSON for any gix subcommand
- Use git status --porcelain where a machine format is needed
- Fallback to human output in wrappers when format flags are rejected
- Follow gitoxide changelogs for status JSON support
When it happens
Trigger: Calling `gix status show --format json` (or any non-Human OutputFormat) — the first check in `show` (gitoxide-core/src/repository/status.rs) fails immediately.
Common situations: Automation expecting machine-readable status; users familiar with `git status --porcelain` looking for a JSON equivalent; mixed CLI habits from other gix subcommands that do support JSON.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- JSON output isn't implemented yet
- JSON output isn't yet supported for listing ref-mappings.
- Only human output is currently supported
- Only the simplified format is currently implemented
- Only human output is supported for now
AI-assisted analysis of GitoxideLabs/gitoxide@e73179060b (2026-09-08).
Data as JSON: /api/errors/0dde09b1526dc2f1.
Report an issue: GitHub.
Appendix: source
Thrown at gitoxide-core/src/repository/status.rs:66
repo: gix::Repository,
pathspecs: Vec<BString>,
mut out: impl std::io::Write,
mut err: impl std::io::Write,
mut progress: impl gix::NestedProgress + 'static,
Options {
ignored,
format,
output_format,
submodules,
thread_limit,
allow_write,
statistics,
index_worktree_renames,
untracked,
}: Options,
) -> anyhow::Result<()> {
if output_format != OutputFormat::Human {
bail!("Only human format is supported right now");
}
if !matches!(format, Format::Simplified) {
bail!("Only the simplified format is currently implemented");
}
let start = std::time::Instant::now();
let prefix = repo.prefix()?.unwrap_or(Path::new(""));
let index_progress = progress.add_child("traverse index");
let mut status = repo
.status(index_progress)?
.should_interrupt_shared(&gix::interrupt::IS_INTERRUPTED);
if let Some(untracked) = untracked {
status = status.untracked_files(untracked);
}
let mut iter = status
.index_worktree_options_mut(|opts| {
if let Some((opts, ignored)) = opts.dirwalk_options.as_mut().zip(ignored) {
opts.set_emit_ignored(Some(match ignored {View on GitHub (pinned to e73179060b)