hasura/graphql-engine · warning

skipping applying migrations on database '%s', encountered:

Error message

skipping applying migrations on database '%s', encountered: 
%w

What it means

Generic sibling of error 108: reading the migrations directory for a source failed with an error that is NOT a directory-not-found error (permission denied, IO error, etc.), and the database is skipped with the underlying error wrapped via %w.

Source

Thrown at cli/commands/migrate_apply.go:325

				return "nothing to apply on database: " + o.Source.Name, nil
			}
		case errors.As(err, &errNotFound):
			// check if the returned error is a directory not found error
			// ie might be because  a migrations/<source_name> directory is not found
			// if so skip this
			return "", herrors.E(
				op,
				fmt.Errorf(
					"skipping applying migrations on database '%s', encountered: \n%s",
					o.Source.Name,
					errNotFound.Error(),
				),
			)
		}

		return "", herrors.E(
			op,
			fmt.Errorf(
				"skipping applying migrations on database '%s', encountered: \n%w",
				o.Source.Name,
				err,
			),
		)
	}

	if len(o.Source.Name) == 0 && !o.EC.AllDatabases {
		o.Source = o.EC.Source
	}

	err := o.Validate()
	if err != nil {
		return nil, herrors.E(op, err)
	}

	if o.EC.AllDatabases && o.EC.Config.Version >= cli.V3 {
		o.EC.Spin("getting lists of databases from server ")

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Check permissions on the migrations/<source_name> directory (ls -la migrations/)
  2. Ensure it is a directory, not a file; recreate if corrupted
  3. Run from a writable checkout; fix volume mounts in containers
Defensive patterns

Strategy: fallback

Validate before calling

for d in migrations/*/; do test -r "$d" || echo "unreadable: $d"; done

Try / catch

if strings.Contains(err.Error(), "skipping applying migrations") { log.Warnf("skipped %s: %v", db, err) }

Prevention

When it happens

Trigger: `hasura migrate apply` where reading migrations/<source_name> fails due to filesystem permissions, a file where a directory is expected, or corrupted files.

Common situations: Read-only mount in CI, ownership mismatch after copying a project, or a file named like the migrations directory.

Related errors


AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28). Data as JSON: /api/errors/92b170e6a6ac7711. Report an issue: GitHub.