CAF launch probe into ouster of FKF President Hussein Mohammed, two other top officials

FIFA, CAF launch probe into ouster of FKF President Hussein Mohammed, two other top officials

FKF President, Hussein Mohammed. (Photo: Hussein Mohammed/X)

Read this story aloud

Listen to the clean text version of this article

Ready
4 min listen
Audio reading is not supported on this browser.

FIFA says the process is aimed at establishing “a clear and accurate understanding” of both the circumstances surrounding the decision and whether it complied with FKF statutes

World football governing body FIFA has formally stepped into the ongoing leadership wrangles at the Football Kenya Federation (FKF), opening an assessment process in coordination with Confederation of African Football (CAF) following the controversial resolution that sent top federation officials home.
In a letter dated April 26, 2026 and addressed to FKF National Executive Committee (NEC) members, FIFA confirmed it is reviewing the circumstances under which a resolution was adopted around April 24 requiring FKF President Hussein Rashid Mohammed, NEC member Abdullahi Yusuf Ibrahim and Acting General Secretary Dennis Gicheru to step aside on a provisional basis.
FIFA says the process is aimed at establishing “a clear and accurate understanding” of both the circumstances surrounding the decision and whether it complied with FKF statutes. CAF is simultaneously handling its own assessment of the matter, underlining the seriousness with which continental and global football authorities are treating the developments in Kenya.

More To Read

  • FKF confirms 2026/27 season calendar despite court dispute over league structure
  • Sports Tribunal stops FKF from relegating Kariobangi Sharks
  • After 13 years of delays, construction resumes on Sh1.7 billion Mombasa Stadium project
  • FIFA pays tribute to Kenyan football legend Allan Thigo in letter to FKF
  • CAF President Patrice Motsepe confident FKF row will be resolved before AFCON 2027
  • Sports Disputes Tribunal extends FKF boss Hussein Mohamed’s suspension as FIFA probe takes centre stage

The letter raises critical governance questions, particularly whether due process was followed in arriving at the decision. FIFA has specifically asked FKF to clarify how the NEC meeting in which the resolution was allegedly adopted was convened, whether quorum and voting requirements were met, and if the affected officials were granted their statutory right to be heard before the decision, as stipulated under Article 41 of the FKF statutes.
FIFA further requested a comprehensive written justification explaining the basis of the resolution, alongside all supporting materials relied upon by the NEC. This includes records, correspondence, reports and any documentation used in deciding to provisionally dismiss the officials.
To facilitate the review, FIFA and CAF have demanded a detailed set of documents, including proof of how the April 24 NEC meeting was called, notices issued to members, the official agenda, attendance records, and voting outcomes. They also want evidence of any formal proposal to place the motion of provisional dismissal on the agenda, as well as confirmation that the affected officials were allowed to defend themselves before the resolution was passed.

Latest Stories

  • DCI arrests man accused of conning job seekers Sh8.6 million in fake KDF, NPS and PSC recruitment scam
  • Wajir begins construction of Baitulmaal Level 4 Hospital to expand access to healthcare
  • The world has the science to transform food systems: The next frontier is scaling it
  • Nigeria demands probe after two citizens killed in South Africa amid rising xenophobia concerns

The global body has set a firm deadline of May 1, 2026, for FKF to submit the requested information, emphasising the need to conclude the assessment “in a timely manner.” FIFA also invited FKF to provide any additional material it considers relevant to the case.
The intervention signals growing concern from both FIFA and CAF over governance and procedural integrity within Kenyan football, with the outcome of the review likely to determine the next course of action regarding the federation’s leadership.
The letter was signed by FIFA Chief Member Associations Officer Elkhan Mammadov and copied to CAF, reinforcing the joint oversight approach as scrutiny intensifies over the FKF crisis.

Other Topics To Read

Top Stories Today

  • Man arrested over Sh8.6 million fake KDF, police jobs scam
  • Saba Saba organisers notify police of peaceful march to Parliament
  • Wajir expands healthcare with new Baitulmaal Level 4 Hospital project
  • Why scaling innovation is the missing link in global food security
  • Abuja warns of diplomatic fallout after killing of Nigerians in South Africa
  • Kenya’s Stephen Yiembe lands historic UEFA Super Cup officiating role

`;
}

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


2026 FIFA World Cup claims seven national team coachesInfographics
|Charity Pancras
|12 hours ago

Kenyans urged to join Saba Saba march to honour victims of alleged abductions, killingsNews
|Lucy Mumbi
|17 hours ago

Wajir begins construction of Baitulmaal Level 4 Hospital to expand access to healthcareNorthern Kenya
|Abdirahman Khalif
|5 hours ago

Stephen Yiembe makes history as first Kenyan referee appointed for UEFA Super CupFootball
|Erick Kariuki
|6 hours ago

Nairobi restaurant gunpoint robbery renews calls for tougher security measuresCity Affairs
|Rachael Mutabasi
|6 hours ago

Nigeria demands probe after two citizens killed in South Africa amid rising xenophobia concernsAfrica
|Rachael Mutabasi
|5 hours ago

Karua, Matiang’i demand arrest and resignation of PS Fikirini over Cecil Ouma shootingNews
|Rachael Mutabasi
|9 hours ago

Faith Kipyegon reveals hamstring injury after rare defeat as focus shifts to second half of seasonAthletics
|Erick Kariuki
|10 hours ago

DCI arrests man accused of conning job seekers Sh8.6 million in fake KDF, NPS and PSC recruitment scamNational
|Abdirahman Khalif
|4 hours ago

Government releases Sh4 billion to settle NHIF hospital claimsHealth
|Lucy Mumbi
|13 hours ago

Share.
Leave A Reply

Exit mobile version