complete_arg_val() now returns undef when it can't find completion from schema, so shell_complete_arg() can fallback to files