fix: ignore messaging_hook in application create/update (#567)

messaging_hook was removed along with smpp (#559), but POST and PUT
/Applications still pass the request body straight into the INSERT/UPDATE.
Clients that still send messaging_hook (even as null) get a 500:
"Unknown column 'messaging_hook' in 'field list'".

Drop the field from the request body so older clients keep working.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dave HortonandClaude Opus 5.5 authored and GitHub committed 2026-10-08 12:19:24 -06:00
1 parent df686e42b2
commit d657a0cb2d
2 files changed
+47 -1

No files matched your search

+4
View File
@@ -150,6 +150,8 @@ router.post('/', async(req, res) => {
// create webhooks if provided
const obj = Object.assign({}, req.body);
/* messaging_hook was removed along with smpp (#559); ignore it from older clients */
delete obj.messaging_hook;
for (const prop of ['call_hook', 'call_status_hook']) {
if (obj[prop]) {
obj[`${prop}_sid`] = await Webhook.make(obj[prop]);
@@ -285,6 +287,8 @@ router.put('/:sid', async(req, res) => {
// create webhooks if provided
const obj = Object.assign({}, req.body);
/* messaging_hook was removed along with smpp (#559); ignore it from older clients */
delete obj.messaging_hook;
for (const prop of ['call_hook', 'call_status_hook']) {
if (prop in obj && Object.keys(obj[prop]).length) {
if ('webhook_sid' in obj[prop]) {
+43 -1
View File
@@ -52,7 +52,34 @@ test('application tests', async(t) => {
}
});
t.ok(result.statusCode === 400, 'Cant create application with invalid app_json');
/* messaging_hook was removed with smpp; older clients that still send it must not fail */
result = await request.post('/Applications', {
resolveWithFullResponse: true,
simple: false,
auth: authAdmin,
json: true,
body: {
name: 'legacy-client',
account_sid,
call_hook: {
url: 'http://example.com'
},
call_status_hook: {
url: 'http://example.com/status'
},
messaging_hook: {
url: 'http://example.com/sms'
}
}
});
t.ok(result.statusCode === 201, 'messaging_hook is ignored when creating an application');
result = await request.delete(`/Applications/${result.body.sid}`, {
auth: authAdmin,
resolveWithFullResponse: true,
});
t.ok(result.statusCode === 204, 'deleted application created with messaging_hook');
/* add an application */
result = await request.post('/Applications', {
resolveWithFullResponse: true,
@@ -196,6 +223,21 @@ test('application tests', async(t) => {
});
t.ok(result.statusCode === 204, 'successfully updated application');
/* messaging_hook is ignored on update too */
result = await request.put(`/Applications/${sid}`, {
auth: authAdmin,
json: true,
resolveWithFullResponse: true,
simple: false,
body: {
name: 'daveh',
messaging_hook: {
url: 'http://example.com/sms'
}
}
});
t.ok(result.statusCode === 204, 'messaging_hook is ignored when updating an application');
/* validate app_json was removed */
result = await request.get(`/Applications/${sid}`, {
auth: authAdmin,