overleaf/overleaf · error
error trying to get websale group product prices
Error message
error trying to get websale group product prices
What it means
Sent by getGroupPlanPerUserPrices when the 'getGroupPlanPerUserPrices' module hook (or session lookup) throws while computing per-user group plan prices for the websale flow. The error is logged and the endpoint returns a bare 500, indicating a server-side failure in price aggregation, not a client input problem.
Source
Thrown at services/web/app/src/Features/Subscription/SubscriptionGroupController.mjs:490
})
} catch (error) {
logger.err({ error }, 'error trying to render subtotal limit exceeded page')
return res.redirect('/user/subscription')
}
}
async function getGroupPlanPerUserPrices(req, res) {
try {
const userId = SessionManager.getLoggedInUserId(req.session)
const prices = await Modules.promises.hooks.fire(
'getGroupPlanPerUserPrices',
userId,
req.query.currency
)
return res.json(prices[0])
} catch (error) {
logger.err({ error }, 'error trying to get websale group product prices')
return res.sendStatus(500)
}
}
export default {
removeUserFromGroup: expressify(removeUserFromGroup),
removeSelfFromGroup: expressify(removeSelfFromGroup),
addSeatsToGroupSubscription: expressify(addSeatsToGroupSubscription),
submitForm: expressify(submitForm),
previewAddSeatsSubscriptionChange: expressify(
previewAddSeatsSubscriptionChange
),
createAddSeatsSubscriptionChange: expressify(
createAddSeatsSubscriptionChange
),
subscriptionUpgradePage: expressify(subscriptionUpgradePage),
upgradeSubscription: expressify(upgradeSubscription),
missingBillingInformation: expressify(missingBillingInformation),
manuallyCollectedSubscription: expressify(manuallyCollectedSubscription),View on GitHub (pinned to 28ad3b03b7)
Solutions
- Check web logs for the logged error from the hook payload
- Verify the subscriptions/institutional modules backing the hook are loaded and healthy
- Confirm the pricing data source (e.g. plans collection or v1 API) is reachable
- Retry the request; if persistent, inspect the hook implementation for bugs
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at services/web/app/src/Features/Subscription/SubscriptionGroupController.mjs:490 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of overleaf/overleaf@28ad3b03b7 (2026-09-03).
Data as JSON: /api/errors/c6a6f7ff854dd351.
Report an issue: GitHub.