diff --git a/crates/openfang-api/static/index_body.html b/crates/openfang-api/static/index_body.html
index 539f1aa2..9e9ee023 100644
--- a/crates/openfang-api/static/index_body.html
+++ b/crates/openfang-api/static/index_body.html
@@ -1154,12 +1154,28 @@
diff --git a/crates/openfang-channels/src/whatsapp.rs b/crates/openfang-channels/src/whatsapp.rs
index 9f45fcd4..06156ab5 100644
--- a/crates/openfang-channels/src/whatsapp.rs
+++ b/crates/openfang-channels/src/whatsapp.rs
@@ -258,12 +258,17 @@ impl ChannelAdapter for WhatsAppAdapter {
"https://graph.facebook.com/v21.0/{}/messages",
self.phone_number_id
);
- self.client
+ let resp = self.client
.post(&api_url)
.bearer_auth(&*self.access_token)
.json(&body)
.send()
.await?;
+ if !resp.status().is_success() {
+ let status = resp.status();
+ let body = resp.text().await.unwrap_or_default();
+ return Err(format!("WhatsApp API error {status}: {body}").into());
+ }
}
ChannelContent::File { url, filename } => {
let body = serde_json::json!({
@@ -279,12 +284,17 @@ impl ChannelAdapter for WhatsAppAdapter {
"https://graph.facebook.com/v21.0/{}/messages",
self.phone_number_id
);
- self.client
+ let resp = self.client
.post(&api_url)
.bearer_auth(&*self.access_token)
.json(&body)
.send()
.await?;
+ if !resp.status().is_success() {
+ let status = resp.status();
+ let body = resp.text().await.unwrap_or_default();
+ return Err(format!("WhatsApp API error {status}: {body}").into());
+ }
}
ChannelContent::Location { lat, lon } => {
let body = serde_json::json!({
@@ -300,12 +310,17 @@ impl ChannelAdapter for WhatsAppAdapter {
"https://graph.facebook.com/v21.0/{}/messages",
self.phone_number_id
);
- self.client
+ let resp = self.client
.post(&api_url)
.bearer_auth(&*self.access_token)
.json(&body)
.send()
.await?;
+ if !resp.status().is_success() {
+ let status = resp.status();
+ let body = resp.text().await.unwrap_or_default();
+ return Err(format!("WhatsApp API error {status}: {body}").into());
+ }
}
_ => {
self.api_send_message(&user.platform_id, "(Unsupported content type)")