Skip to content

Conversation

@thesandlord
Copy link
Contributor

@thesandlord thesandlord commented Jan 16, 2026

Description

Refs: Slack thread about airgapped environment failures

Fixes the "FDR registerApiDefinition failed: fetch failed" error that occurs when running fern generate --docs in air-gapped/self-hosted environments.

Revised Approach: After discussion, the fix was updated to keep FDR calls working (they should use the local FDR server via DEFAULT_FDR_ORIGIN) and only skip external services that don't have local equivalents.

Changes Made

  • publishDocs.ts: Added airgapped detection and skip Python docs generation (startLibraryDocsGeneration) - this external service has no local equivalent
  • runRemoteGenerationForGenerator.ts: Added airgapped detection and skip Venus organization lookup - there's no local Venus server
  • package.json: Added @fern-api/lazy-fern-workspace dependency to remote-workspace-runner

What's NOT skipped: FDR calls (registerApiDefinition, startDocsRegister, finishDocsRegister, etc.) are NOT skipped because they should work with the local FDR server when DEFAULT_FDR_ORIGIN is properly configured.

Testing

  • Unit tests added/updated
  • Manual lint/format checks passed (pnpm run check, pnpm format)
  • CI checks passing

Human Review Checklist

  • Verify DEFAULT_FDR_ORIGIN is properly set in self-hosted environments to point to local FDR server
  • Confirm skipping Venus lookup doesn't break whitelabel or self-hosted SDK features (these IR fields won't be set in airgapped mode)
  • Verify skipping Python docs generation is acceptable behavior in airgapped environments
  • Note: registerApi.ts was reverted to original (no airgapped checks) since it only makes FDR calls

Link to Devin run: https://app.devin.ai/sessions/7aca72cdf3e44a27878b2f9655970f4e
Requested by: Sandeep Dinesh (@thesandlord)

…ing fern generate

This ensures that in air-gapped environments, external service calls are skipped
to prevent network errors during docs generation and SDK generation.

Changes:
- publishDocs.ts: Add airgapped detection and skip FDR calls for docs registration,
  API registration, Python docs generation, and final docs publishing
- registerApi.ts: Add airgapped detection and skip FDR API registration
- runRemoteGenerationForGenerator.ts: Add airgapped detection and skip Venus org
  lookup, FDR API registration, semantic version computation, and dynamic IR uploads

Co-Authored-By: Sandeep Dinesh <sandeep@buildwithfern.com>
@devin-ai-integration
Copy link
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@devin-ai-integration devin-ai-integration bot changed the title fix: add airgapped checks to all external FDR/Venus service calls during fern generate fix(cli): add airgapped checks to all external FDR/Venus service calls during fern generate Jan 16, 2026
devin-ai-integration bot and others added 3 commits January 16, 2026 21:07
…orkspace-runner

Co-Authored-By: Sandeep Dinesh <sandeep@buildwithfern.com>
Co-Authored-By: Sandeep Dinesh <sandeep@buildwithfern.com>
… lookups

- Remove airgapped checks that skip FDR calls (registerApiDefinition, startDocsRegister, finishDocsRegister, etc.) since these should work with local FDR via DEFAULT_FDR_ORIGIN
- Keep airgapped check for Venus organization lookup (no local Venus server)
- Keep airgapped check for Python docs generation (external service)
- FDR calls will now properly use the local FDR server in self-hosted environments

Co-Authored-By: Sandeep Dinesh <sandeep@buildwithfern.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants