Fractured West African bloc ECOWAS appeals for unity
Fractured West African bloc ECOWAS appeals for unity
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.
With its reputation at stake, ECOWAS’s handling of the latest political upheaval – in Senegal – is being closely watched
West Africa’s regional bloc appealed for unity on Thursday after emergency talks on the withdrawal of three coup-hit countries from the group.
The Economic Community of West African States (ECOWAS) extraordinary session also addressed President Macky Sall’s decision to delay elections in Senegal, a major concern for the region that came just a week after Burkina Faso, Mali and Niger declared their departure.
The chairman of the ECOWAS Mediation and Security Council urged the three countries not to leave, warning their exit would “bring more hardship and do more harm to common citizens”.
More To Read
- Burkina Faso cuts diplomatic ties with France
- Cote d’Ivoire cuts airport charges 25 per cent on ECOWAS flights
- Benin heads to polls after failed coup as security fears grip presidential vote
- Human traffickers exploit football dreams to lure young Ghanaian men to Nigeria — How can it be stopped?
- Border tensions rise between Guinea, Sierra Leone following military detentions
“We are stronger together as a community,” Yusuf Maitama Tuggar said as West African foreign and defence ministers attended the council meeting in Nigeria’s capital Abuja.
Senegal’s ministers attended, but representatives for Burkina Faso, Mali, Niger and Guinea, all suspended from ECOWAS following coups, were not present.
ECOWAS Commission President Omar Alieu Touray also urged the bloc to remain united, saying, “If there is a time for ECOWAS to stay together, this is the time”.
Latest Stories
- Study finds intermittent fasting helps maintain weight loss for at least a year
- Busia school named among global finalists for 2026 education prize
- DP Kindiki hails cooperatives as key to Kenya’s economic transformation
- SHA seeks Treasury funds to clear NHIF claims above Sh10 million
Council members left to hold private talks before they returned more than six hours later and ended the session without providing a clear statement on what measures — if any — they would take.
Burkina Faso, Mali and Niger announced their joint withdrawal from ECOWAS last month, worsening a diplomatic headache for the bloc, which up until then had 15 members.
The three have said they intend to leave immediately, despite ECOWAS’s requirement that countries wait a year before quitting.
Benin’s President Patrice Talon said he was “saddened” by their choice to leave.
“The decision they have taken penalises the people” of the countries concerned, he said at a separate press conference in Benin on Thursday.
Crisis in Senegal
Touray also called the recent turmoil in Senegal a further “worrying development”.
The country plunged into its worst political crisis in decades this weekend when Sall postponed the February 25 vote to December just hours before campaigning was set to begin.
Lawmakers voted almost unanimously in favour of the delay on Monday, but only after security forces stormed the chamber and removed some opposition members, who were unable to vote.
Observers expressed concern at events in one of ECOWAS’s most influential and stable members, raising fears of knock-on effects in the region.
ECOWAS, the United States and European Union have urged Senegal to return to its election timetable, but critics have questioned the regional bloc’s sway over increasingly defiant member states.
In a statement Tuesday, ECOWAS cautioned Senegal against jeopardising “peace and stability” during difficult times for West Africa — but it was unclear what the bloc would do if Sall defied its warning.
The turmoil has also brought the almost 50-year-old bloc’s broader role into doubt — especially after its warning of military intervention in Niger last year fizzled out with no sign the country’s toppled president is closer to being restored.
With its reputation at stake, ECOWAS’s handling of the latest political upheaval is being closely watched.
The bloc can impose trade sanctions, as it has against Mali and Niger following their coups.
But the sanctions have hit citizens hard and military regimes remain in place.
Experts also say that while Senegal may be playing with fire, it is still a long way off the stage where ECOWAS is likely to impose financial penalties.
Touray told AFP ministers at the meeting in Abuja had not discussed sanctioning Senegal.
Story by AFP
Other Topics To Read
Top Stories Today
- Study finds intermittent fasting helps maintain weight loss for at least a year
- Busia school named among global finalists for 2026 education prize
- DP Kindiki hails cooperatives as key to Kenya’s economic transformation
- SHA seeks Treasury funds to clear NHIF claims above Sh10 million
- Eight arrested in Marsabit over Sh1.2 million SIM swap fraud
- What the World Cup hydration breaks reveal about who governs men’s football
`;
}
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 arrested in Marsabit over Sh1.2 million SIM swap fraudNorthern Kenya
|Bashir Mbuthia
|2 hours ago
Study finds intermittent fasting helps maintain weight loss for at least a yearHealth
|Charity Kilei
|19 minutes ago
IGAD pushes regional action to tackle plastic pollutionNews
|Rachael Mutabasi
|6 hours ago
Families of Ethiopians on Saudi death row gripped by fear as executions loomRegional
|Addis Standard
|4 hours ago
What Kenya’s record Sh1.82 trillion forex reserves mean for the economyBusiness
|Alfred Onyango
|7 hours ago
Iran begins six-day funeral for late Supreme Leader Ali KhameneiWorld
|DW News
|9 hours ago
Government reaffirms commitment to inclusive development across all regionsNews
|Mary Wambui
|4 hours ago
Sudanese army intensify offensive to retake strategic city of Kurmuk on Ethiopia borderRegional
|Addis Standard
|3 hours ago
Venezuelan man rescued alive eight days after powerful quakesWorld
|DW News
|1 day ago
Egypt end 92-year wait to reach World Cup last 16News
|Erick Kariuki
|10 hours ago
