diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index c4c9d32e1d4ac..8c7990e0d4dea 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -935,6 +935,7 @@ fork_from = Fork From
 already_forked = You've already forked %s
 fork_to_different_account = Fork to a different account
 fork_visibility_helper = The visibility of a forked repository cannot be changed.
+fork_no_valid_owners = This repository can not be forked because there are no valid owners.
 use_template = Use this template
 clone_in_vsc = Clone in VS Code
 download_zip = Download ZIP
diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go
index 1b68ef352a4ef..505e1424cd119 100644
--- a/routers/web/repo/pull.go
+++ b/routers/web/repo/pull.go
@@ -174,6 +174,12 @@ func getForkRepository(ctx *context.Context) *repo_model.Repository {
 		ctx.Data["ContextUser"] = ctx.Doer
 	} else if len(orgs) > 0 {
 		ctx.Data["ContextUser"] = orgs[0]
+	} else {
+		msg := ctx.Tr("repo.fork_no_valid_owners")
+		ctx.Data["Flash"] = ctx.Flash
+		ctx.Flash.Error(msg)
+		ctx.Data["CanForkRepo"] = false
+		return nil
 	}
 
 	return forkRepo