Fejlfinding
Almindelige problemer og løsningen på dem. Hvert afsnit linker til den relevante referenceside for mere baggrund.
Godkendelse og login
Mailen til nulstilling af adgangskode kommer ikke frem
Tjek din spam-mappe. Mails til nulstilling af adgangskode kommer fra hello@frem.sh. Bruger din organisation SSO, er nulstilling af adgangskoden ikke den rigtige vej. Brug i stedet knappen Sign in with <IdP> på loginsiden. SSO-konti har ikke nødvendigvis en lokal adgangskode.
SSO-login fejler med redirect_uri mismatch
IdP’en afviste callback’et, fordi den redirect-URI, der er registreret dér, ikke svarer præcist til den, fremforge sender. Redirect-URI’en er https://frem.sh/user/oauth2/<auth-source-name>/callback, hvor <auth-source-name> er autentificeringskildens nøjagtige Navn, som det vises på dens kort under Administration → SSO; kopiér navnet i stedet for at skrive det selv. En enkelt afsluttende skråstreg til forskel er nok til at give denne fejl. Se Single sign-on med OIDC.
SSH: Permission denied (publickey)
Tre almindelige årsager:
- Nøglen er ikke tilføjet til din fremforge-konto (Brugerindstillinger → SSH / GPG nøgler → Tilføj nøgle).
- Den nøglefil, din SSH-klient henviser til, tilhører en anden brugerkonto.
- Nøgleformatet understøttes ikke (Ed25519, RSA 3072+ og ECDSA understøttes; DSA-nøgler afvises).
Test din nøgle: ssh -T -p 443 git@ssh.frem.sh. fremforge udstiller SSH på port 443 via ssh.frem.sh (port 22 er ikke åben). Lykkes godkendelsen, får du Hi <username>! You've successfully authenticated.... Se Kom i gang for opsætning af nøgler og Forbind til fremforge for det Host-alias i ~/.ssh/config, der lader dig blive ved med at skrive git@frem.sh i dine remotes.
PAT er udløbet / 401 på API-kald
PAT’er udløber efter 90 dage, hvilket også er det maksimale (ttl_days accepterer 1-90). Tjek:
- At tokenet stadig står under Brugerindstillinger → Git-adgangstokens.
- At tokenet har det krævede scope. REST-kald til kontrolplanet bruger fremforges egne scopes (
orgs:read,findings:read, …) – se API-tokens. Pakkeregistre tager slet ingen PAT; se Pakker / registry nedenfor. - At tokenværdien blev kopieret korrekt (den vises kun én gang, når den oprettes).
Opret et nyt token, hvis du er i tvivl.
CI / runners
Jobbet sidder fast i køen
Organisationen er garanteret 2 samtidige jobs pr. bruger (mindst 10, højst 60) og kan bruge op til 60, når platformen har ledig kapacitet. En organisation på prøveperiode kører 2 ad gangen. Se, hvor mange jobs der kører lige nu, på frem.sh/<org>/_admin/billing. Er alle organisationens pladser i brug, venter jobs i køen, til en plads bliver ledig. De bliver ikke annulleret.
Er køen tom, men jobs sidder stadig fast, kan runner-agenten være offline. Tjek runnernes status i organisationens Forgejo-indstillinger under Indstillinger → Handlinger → Runners (frem.sh/org/<org>/settings/actions/runners).
actions/checkout fejler: repository not found
Det indbyggede FORGEJO_TOKEN skal have tilladelsen contents: read. Tilføj en permissions:-blok til jobbet eller workflowet:
permissions:
contents: readEr repositoriet privat, og er tokenet en PAT i stedet for det indbyggede token, så tjek, at PAT’en har scopet repo.
Secret er sat, men er tom i jobbet
Secret’en er sat på det forkerte niveau. Secrets har denne rækkefølge: miljø-secret → repository-secret → organisations-secret. Erklærer dit job environment: production, indsættes kun secrets, der er sat på det miljø (og repository- og organisations-secrets, som miljøet ikke skygger for). Tjek, at secret’en er sat på det niveau, der svarer til jobbets environment:-erklæring.
Docker: Cannot connect to the Docker daemon
fremforges runners er flygtige VM’er, én pr. commit (debian 13), med en indbygget Docker-daemon installeret på forhånd. docker build, docker run og docker/build-push-action@v5 virker alle uden ekstra opsætning. Ser du denne fejl, så tjek, at jobbet erklærer runs-on: fremforge (så det havner på en fremforge-runner og ikke på en selvhostet label uden Docker):
jobs:
build-image:
runs-on: fremforge
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v5
with:
context: .
push: true
tags: registry.example.com/${{ github.repository }}:${{ github.sha }}Til ren kopiering, omtagging og push af images mellem registre er skopeo installeret på forhånd. Se CI-runners for de tilgængelige runner-labels og docs.frem.sh/build/actions/runner-image/ for den fulde liste over forudinstalleret værktøj.
upload-artifact prøver igen ved 413 og fejler så med Status Code: 413
Organisationens kvote til Actions-artefakter (5 GiB pr. bruger) er fyldt op. Trinnets log viser A 413 status code has been received, will attempt to retry the upload flere gange og derefter Status Code: 413 og Status Message: Request Entity Too Large. Det hjælper ikke at køre jobbet igen, før der er frigjort plads. Se Actions-artefakter og vedhæftede filer.
Action not found: uses: some/action@v1
De fleste actions fra GitHub Marketplace virker på fremforge. Actions, der kalder github.com/api/v3 direkte, fejler, fordi de rammer GitHubs API og ikke fremforges API. Se Marketplace-kompatibilitet for kompatibilitetsoversigten pr. action.
Git og repositorier
Push afvist: secret fundet
Gitleaks (pre-receive-hook) blokerede pushet, fordi der blev fundet et secret-mønster i committet. Pushet blev ikke modtaget. Secret’en nåede aldrig repositoriet.
Sådan løser du det:
- Rotér secret’en med det samme i det system, der udstedte den, selv om pushet blev afvist. Gå ud fra, at værdien er kompromitteret fra det øjeblik, den dukkede op i dit arbejdstræ.
- Fjern secret’en fra dit arbejdstræ og din commit-historik med
git filter-repo. - Push den rensede historik igen.
Se Sikkerhed og supply chain for, hvilke mønstre der bliver fundet.
Push afvist: branch-beskyttelse
En regel for branch-beskyttelse blokerer pushet. Tjek reglerne under Repo-indstillinger → Grene → <branch-navn>. Almindelige årsager: et påkrævet statustjek er ikke bestået, force-push er slået fra, eller pushet kræver et signeret commit.
LFS: batch request failed
Git LFS er tilgængeligt i alle repositories; der er ingen kontakt pr. repository, der skal slås til. Repo-indstillinger → LFS viser de LFS-filer, repositoriet allerede gemmer. Bliver fejlen ved, så tjek organisationens lagerkvote. LFS-lager tæller med i LFS-puljen på 5 GB pr. bruger, som er adskilt fra pakkeregistrets pulje på 5 GB pr. bruger.
Webhooks
Webhook udløses ikke
Tjek de seneste leveringsforsøg under Repo-indstillinger → Webhooks → <webhook> → Seneste leverancer. Den hyppigste årsag er, at payload-URL’en ikke kan nås fra fremforges udgående IP-adresser i T Cloud Public. Står leveringerne som fejlede, indeholder svarets body typisk den HTTP-status, dit endpoint returnerede. Se Webhooks for de udgående IP-intervaller.
Webhook udløses, men payload er forkert
Tjek, hvilke hændelsestyper der abonneres på. Et push til et tag sender en push-hændelse, ikke en create-hændelse. Tjek konfigurationen under Events på webhooken. Se Webhooks for alle hændelsestyper.
SSO / SCIM
SCIM-bruger er klargjort, men kan ikke logge ind
Domænet skal være bekræftet, før brugere klargjort via SCIM kan logge ind. Bekræft e-maildomænet under Administration → SSO → Verificerede domæner. Domænet i brugerens e-mailadresse skal stå dér.
Pakker / registry
Registre accepterer kun to slags legitimation: det automatiske token i et Forgejo Actions-job og det kortlivede token, som fremforge CLI giver dine værktøjer. API-tokens (ffp_…) afvises. Se Pakkeregistret → Godkendelse.
Actions-job: 403 this job's token can only write packages linked to its own repository
Jobbet forsøgte at udgive en pakke, der hører til et andet repository i organisationen, eller en pakke, der ikke er knyttet til noget repository. Et jobs token kan kun skrive pakker, der er knyttet til jobbets eget repository, og nye pakker, som det selv opretter. Udgiv fra det repository, pakken hører til, eller knyt en ikke-tilknyttet pakke til dette repository på pakkens side Settings.
Actions-job: 401 eller 403 ved udgivelse fra en pull request
Kørsler for pull requests fra forks får kun læseadgang. Udgiv fra et push- eller tag-workflow i selve repositoriet.
docker pull eller push: unauthorized
Tjek CLI-login og hjælperen på din maskine:
fremforge auth status
printf 'frem.sh\n' | docker-credential-fremforge get # prints JSON when the helper worksnot logged in→ kørfremforge auth login.docker-credential-fremforge: command not found→ hjælperens mappe (~/.local/bin) er ikke på dinPATH, ellerfremforge auth configure dockerer aldrig blevet kørt.fremforge manages frem.sh registry credentialsefterdocker login frem.sh→ forventet; hjælperen afviser gemte adgangskoder. Brugfremforge auth login.
npm, Maven eller Gradle: 401 efter et stykke tid
Disse værktøjer læser en kopi af tokenet fra deres konfigurationsfil, og den kopi udløber efter
højst en time. Kør en hvilken som helst fremforge-kommando, eller fremforge auth refresh, for at skrive den igen. Tilføj
"preinstall": "fremforge auth refresh --quiet" til package.json, eller et trin før build i din
IDE, så builds altid starter med et frisk token.
pip eller uv: 401 eller en adgangskodeprompt
pip og uv spørger kun keyring, når de bliver bedt om det: pip config set global.keyring-provider subprocess,
eller UV_KEYRING_PROVIDER=subprocess for uv. Indeks-URL’en skal indeholde dit brugernavn
(https://<username>@frem.sh/api/packages/<org>/pypi/simple/). Tjek, at den keyring, der ligger i
~/.local/bin, kommer først på din PATH: command -v keyring.
Ledige slugs og navne til organisationer
Slugs til organisationer skal være 3-30 tegn, med små bogstaver og kun bogstaver, tal og bindestreger, uden bindestreg først eller sidst.
Vises et slug som utilgængeligt ved tilmelding, er det enten registreret af en anden organisation eller står på listen over reserverede navne. Den reserverede liste dækker almindelige rollenavne (admin, api, billing, support, status, security, abuse, root, system, fremforge og lignende) for at forhindre phishing og sammenstød med tjenestestier.
Navne, der ligger tæt op ad varemærker (f.eks. slugs, der minder meget om velkendte brandnavne), kommer i en kø til manuel gennemgang i stedet for at blive blokeret med det samme. Ligger din tilmelding i køen, får du en mail fra support@frem.sh inden for én hverdag. I de fleste tilfælde bliver legitime virksomheder, der bruger deres eget brandnavn, godkendt uden besvær.
Er dit foretrukne slug taget af en inaktiv organisation eller en, der blot holder på navnet, så kontakt support@frem.sh. Oplys det ønskede slug og din organisations domæne eller anden dokumentation for ejerskab. Overdragelse af slugs behandles fra sag til sag.
Skift af organisationens slug efter oprettelsen: Administration → Indstillinger → Omdøb organisation. Alle eksisterende repository-URL’er, clone-URL’er og API-kald, der bruger det gamle slug, bliver ved med at blive omdirigeret i 90 dage. Efter 90 dage kan det gamle slug registreres af andre.
Krydsreferencer
- Single sign-on med OIDC: opsætning af SSO og fejlfinding
- Klargøring af brugere med SCIM 2.0: håndtering af brugeres livscyklus
- CI-runners: konfiguration af runners og labels
- Webhooks: leveringslogge og hændelsestyper
- Sikkerhed og supply chain: secret-scanning og push-beskyttelse
- Pakkeregistret: opsætning af registret og godkendelse
- Marketplace-kompatibilitet: kompatibilitetsoversigt for actions
- Kom i gang: opsætning af SSH-nøgler