FKF withdraws court case after FIFA, CAF intervene to resolve governance crisis
FKF withdraws court case after FIFA, CAF intervene to resolve governance crisis
Read this story aloud
Listen to the clean text version of this article
Ready
6 min listen
Audio reading is not supported on this browser.
The case had formed part of the wider leadership wrangles that have engulfed the federation in recent months, with rival factions within the National Executive Committee engaging in court battles over governance and administrative decisions
The Football Kenya Federation (FKF) has taken a significant step towards resolving its recent governance crisis after a High Court petition filed by a member of the National Executive Committee (NEC) was formally withdrawn, implementing one of the key resolutions reached during a high-level meeting with FIFA, CAF and CECAFA officials.
The withdrawal, filed on July 1, 2026, comes a day after NEC members held consultations with a joint FIFA, CAF and CECAFA delegation that had travelled to Nairobi to assess the governance situation within Kenyan football and chart a path towards restoring stability.
In the notice of withdrawal, the petitioner informed the High Court that the petition dated April 26, 2026, together with all subsequent applications, had been withdrawn, with no orders as to costs and the matter marked as closed.
More To Read
- Countdown begins as expanded WAFCON 2026 nears kick‑off in Morocco
- Miguel Almiron first player sent off for covering mouth under new FIFA rule
- World Cup 2026: The real story of the resilient African migrants reshaping global football
- FKF confirms 2026/27 season calendar despite court dispute over league structure
- Kenya, Uganda and Tanzania gear up for historic 2027 AFCON
- High Court halts FKF’s 2025 rules, orders playoffs before 2026/27 season
The case had formed part of the wider leadership wrangles that have engulfed the federation in recent months, with rival factions within the National Executive Committee engaging in court battles over governance and administrative decisions.
The withdrawal directly implements one of the resolutions adopted during Tuesday’s consultative meeting, where the NEC agreed that matters before ordinary courts should be discontinued because they were inconsistent with the FKF constitution and internationally recognised football governance principles.
In a statement released after the meeting, FKF confirmed that the engagement brought together members of the National Executive Committee and a joint delegation comprising CECAFA President and CAF Executive Committee member Paulus Weldehaimanot, FIFA Regional Office lead Davis Ndayisenga, FIFA governance consultant Mohamed Elshawarby, CAF Legal Counsel Nadim Magdy and FIFA governance services team leader Ahmed Harraz.
Latest Stories
- RSF atrocities in El Fasher are ‘a stain on the conscience of humanity’ – Amnesty
- What criminals can access after phone theft and what to do immediately
- Kenya unveils multi-agency team to crack down on fake and substandard medicines
- How the new Ngong Road flyover is fueling growth at Dagoretti Corner
According to the Federation, the purpose of the meeting was to enable FIFA and CAF to engage directly with the NEC, gain a comprehensive understanding of the governance challenges affecting Kenyan football and provide guidance aimed at safeguarding the federation’s stability and institutional integrity.
Following the deliberations, the NEC reaffirmed its commitment to working collaboratively with FIFA, CAF and other football stakeholders to strengthen governance, promote accountability and protect the interests of the game.
Among the resolutions reached was an agreement that all parties should exercise restraint while investigations by the relevant authorities continue into governance concerns affecting the Federation. The committee stressed that these investigations should proceed independently without interference that could undermine institutional stability or public confidence.
The NEC also resolved to convene an urgent meeting within two days to deliberate on immediate governance reforms and other priority institutional matters arising from the discussions with FIFA and CAF. The meeting is expected to focus on measures aimed at strengthening the Federation’s governance framework and restoring confidence among stakeholders.
Most notably, the committee agreed that the High Court case filed by one of its own members should be withdrawn immediately, arguing that litigation in ordinary courts contradicted the provisions of the FKF constitution and established football governance principles.
The resolution reinforces FIFA’s long-standing position that football disputes should first be handled through internal dispute resolution mechanisms before parties seek intervention from national courts. The principle has repeatedly been emphasised by both FIFA and CAF as a cornerstone of football governance worldwide.
The developments could have wider implications beyond the withdrawn petition.
With FIFA and CAF now closely monitoring the federation, decisions that were allegedly taken without full approval of the NEC may come under fresh scrutiny. Governance procedures surrounding financial oversight, committee appointments and executive decision-making could also be reviewed to ensure compliance with the federation’s constitution.
Recent appointments to various committees, particularly those made without formal NEC endorsement, may equally be reassessed as part of the broader governance reforms expected to be discussed at the upcoming executive meeting.
Attention also remains on investigations relating to the procurement of insurance services for the 2024 African Nations Championship (CHAN), which continue to be handled by CAF and relevant Kenyan authorities. The outcome of those investigations could influence future administrative decisions within the federation.
There is also growing expectation that certain administrative and operational decisions affecting the recently concluded 2025/26 football season and preparations for the upcoming 2026/27 campaign may be revisited if governance concerns are established.
The withdrawal of the court case also comes against the backdrop of a recent Sports Disputes Tribunal ruling involving nine NEC members. In that matter, the tribunal dismissed a challenge surrounding attempts to remove the FKF president, emphasising that the Federation’s internal dispute resolution mechanisms should be exhausted before parties resort to external judicial forums.
With the court case now withdrawn and an urgent NEC meeting expected within days, Kenyan football appears to be entering a new phase in efforts to resolve months of internal disputes. Whether the resolutions agreed with FIFA and CAF translate into lasting governance reforms will become clearer as the federation begins implementing the decisions reached during the high-level consultations.
Other Topics To Read
Top Stories Today
- Eight Utumishi Girls Academy students deny 16 murder charges in fatal school fire
- RSF atrocities in El Fasher are ‘a stain on the conscience of humanity’ – Amnesty
- Kenya unveils multi-agency team to crack down on fake and substandard medicines
- How the new Ngong Road flyover is fueling growth at Dagoretti Corner
- FKF withdraws court case after FIFA, CAF intervene to resolve governance crisis
- Infotrak survey: Kenyans rank delivery of promises as top measure of leaders’ performance
`;
}
return “;
}
function commentActionsMarkup(comment, canComment) {
const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
const likeCount = Number(comment.like_count || 0) > 0
? “
: ”;
const likeButton = canComment && comment.status === ‘approved’
? “
: “;
const replyButton = canComment && comment.status === ‘approved’
? “
: ”;
return `
`;
}
function commentMarkup(comment, canComment, isReply = false) {
const pendingBadge = comment.status && comment.status !== ‘approved’
? “
: ”;
const edited = comment.is_edited
? “
: ”;
const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
? `
`
: “;
return `
`;
}
function replyFormMarkup(commentId) {
return `
`;
}
function setNotice(widget, message, type = ‘info’) {
const notice = widget.querySelector(‘[data-role=”notice”]’);
if (!notice) return;
if (!message) {
notice.hidden = true;
notice.textContent = ”;
notice.classList.remove(‘is-error’);
return;
}
notice.hidden = false;
notice.textContent = message;
notice.classList.toggle(‘is-error’, type === ‘error’);
}
function setCount(widget, total) {
const count = widget.querySelector(‘[data-role=”count”]’);
if (!count) return;
const num = Number(total || 0);
count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
}
function openReplyBox(widget, commentId) {
widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
box.hidden = true;
box.innerHTML = ”;
});
const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (!targetItem) return;
const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
if (!replyBox) return;
replyBox.hidden = false;
replyBox.innerHTML = replyFormMarkup(commentId);
const textarea = replyBox.querySelector(‘textarea’);
if (textarea) textarea.focus();
}
function closeReplyBox(container) {
if (!container) return;
container.hidden = true;
container.innerHTML = ”;
}
async function initCommentsWidget(widget) {
const state = {
articleId: Number(widget.dataset.articleId),
loadUrl: widget.dataset.loadUrl,
storeUrl: widget.dataset.storeUrl,
commentsBaseUrl: widget.dataset.commentsBaseUrl,
canComment: widget.dataset.canComment === ‘1’,
page: 1,
perPage: 10,
sort: ‘newest’,
total: 0,
hasMore: false,
busy: false
};
const list = widget.querySelector(‘[data-role=”list”]’);
const loading = widget.querySelector(‘[data-role=”loading”]’);
const empty = widget.querySelector(‘[data-role=”empty”]’);
const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);
async function loadComments(reset = true) {
if (state.busy) return;
state.busy = true;
setNotice(widget, ”);
loading.hidden = false;
if (reset) {
state.page = 1;
list.innerHTML = ”;
empty.hidden = true;
}
try {
const url = new URL(state.loadUrl, window.location.origin);
url.searchParams.set(‘page’, state.page);
url.searchParams.set(‘per_page’, state.perPage);
url.searchParams.set(‘sort’, state.sort);
const response = await requestJson(url.toString(), {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’,
‘X-Requested-With’: ‘XMLHttpRequest’
}
});
const items = Array.isArray(response.data) ? response.data : [];
const meta = response.meta || {};
state.total = Number(meta.total || 0);
state.hasMore = !!meta.has_more;
setCount(widget, state.total);
if (reset) {
list.innerHTML = ”;
}
if (!items.length && reset) {
empty.hidden = false;
} else {
empty.hidden = true;
list.insertAdjacentHTML(
‘beforeend’,
items.map(item => commentMarkup(item, state.canComment, false)).join(”)
);
}
loadMoreBtn.hidden = !state.hasMore;
} catch (error) {
if (!list.children.length) {
empty.hidden = false;
empty.textContent = ‘Unable to load comments right now.’;
}
setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
} finally {
loading.hidden = true;
state.busy = false;
}
}
async function submitTopLevelComment(form) {
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘[data-role=”submit-comment”]’);
if (!textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(state.storeUrl, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
textarea.value = ”;
if (response?.data) {
list.insertAdjacentHTML(
‘afterbegin’,
commentMarkup(response.data, state.canComment, false)
);
empty.hidden = true;
if ((response.data.status || ”) === ‘approved’) {
state.total += 1;
setCount(widget, state.total);
}
}
setNotice(widget, response.message || ‘Comment posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post comment’;
}
}
}
async function submitReply(form) {
const commentId = Number(form.dataset.commentId || 0);
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘.ev-comments__reply-submit’);
if (!commentId || !textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
if (response?.data) {
const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (parentItem) {
const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
if (repliesWrap) {
repliesWrap.insertAdjacentHTML(
‘beforeend’,
commentMarkup(response.data, state.canComment, true)
);
}
}
}
closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
setNotice(widget, response.message || ‘Reply posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post reply’;
}
}
}
async function toggleLike(button) {
const commentId = Number(button.dataset.commentId || 0);
if (!commentId) return;
const originalHtml = button.innerHTML;
try {
button.disabled = true;
button.innerHTML = ‘Working…’;
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({})
});
const liked = !!response?.data?.liked;
const likeCount = Number(response?.data?.like_count || 0);
button.classList.toggle(‘is-liked’, liked);
button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
} catch (error) {
button.innerHTML = originalHtml;
setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
} finally {
button.disabled = false;
}
}
if (composerForm) {
composerForm.addEventListener(‘submit’, function (e) {
e.preventDefault();
submitTopLevelComment(composerForm);
});
}
if (sortSelect) {
sortSelect.addEventListener(‘change’, function () {
state.sort = this.value || ‘newest’;
loadComments(true);
});
}
if (loadMoreBtn) {
loadMoreBtn.addEventListener(‘click’, function () {
if (state.busy || !state.hasMore) return;
state.page += 1;
loadComments(false);
});
}
widget.addEventListener(‘click’, function (e) {
const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
if (likeBtn) {
e.preventDefault();
toggleLike(likeBtn);
return;
}
const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
if (replyBtn) {
e.preventDefault();
openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
return;
}
const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
if (cancelReplyBtn) {
e.preventDefault();
closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
}
});
widget.addEventListener(‘submit’, function (e) {
const replyForm = e.target.closest(‘.ev-comments__reply-form’);
if (replyForm) {
e.preventDefault();
submitReply(replyForm);
}
});
loadComments(true);
}
document.addEventListener(‘DOMContentLoaded’, function () {
document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
});
})();
Trending
Eight Utumishi Girls Academy students deny 16 murder charges in fatal school fireNational
|Carolyne Kubwa
|1 hour ago
What criminals can access after phone theft and what to do immediatelyTechnology
|Margaret Wanjiru
|28 minutes ago
Infotrak survey: Kenyans rank delivery of promises as top measure of leaders’ performanceNews
|Lucy Mumbi
|1 hour ago
Ambulance operators given until July 17 to register with KMPDC or face actionHealth
|Lucy Mumbi
|1 day ago
President Hassan Sheikh calls for unity amid security challenges on Somalia’s Independence DaySomalia
|Abdirahman Khalif
|2 hours ago
𝐄𝐚𝐬𝐭𝐥𝐞𝐢𝐠𝐡 𝐕𝐨𝐢𝐜𝐞 𝐚𝐭 𝐍𝐢𝐧𝐞 – Gatundu family demands justice after woman found deadVideos
|Zawadi Charity
|16 hours ago
DR Congo takes helm of UN Security Council, puts conflict with Rwanda at the forefrontDemocratic Republic of Congo
|Mwangi Maina
|3 hours ago
Cabinet clears financing for Modogashe-Samatar and Rhamu-Mandera roads to speed up constructionNorthern Kenya
|Abdirahman Khalif
|7 hours ago
SUPKEM trains Muslim marriage officers on digital record managementCoast
|Farhiya Hussein
|2 hours ago
New WHO plan urges stronger action against fungal diseaseHealth
|UN News
|6 hours ago
