-
Editing Fern-generated files directly. Any file with the
/** This file was auto-generated by Fern ... */header that is not listed in.fernignoreis regenerated on the next SDK build — your edit is silently lost. Fix the Fern API spec or thegenerators/java-v2generator instead, or move the file's logic into a hand-maintained (.fernignore) location. This is the single most common mistake in this repo. -
Assuming
.fernignorecovers the whole Management API. It protects only the explicitly listed files/dirs (the Authentication API,net/,exception/,utils/,json/auth/, the custom builders/token providers, and specific tests). Everything else under the generatedmgmttree is fair game for regeneration. -
Using post-Java-8 syntax. The library compiles and runs on Java 8 (
sourceCompatibility = 1.8, toolchain pinned to 8). Novar, records, sealed types, or switch expressions insrc/. -
Skipping
spotlessApply. CI'scheckincludesspotlessCheck(palantir-java-format). Unformatted code fails the build even if tests pass. -
Introducing breaking changes. This is a widely-consumed published library. Source/binary-breaking changes require explicit approval and a migration-guide entry — see Boundaries in CLAUDE.md.
-
Hardcoding a real tenant/secret. Never put a real Auth0 domain, client secret, or token into code, tests, fixtures, or the sample app.
-
Hand-editing
reference.md. It is large and generated; regenerate rather than edit.