Master Data — Common cases
Account holder avatar does not show
Check Contact.ProfileImage, upload entity type, and URL construction. Do not look for Account.ProfileImage; Account does not own avatar.
Real-world example: A parent's avatar does not appear on the account page. → Look in the correct owner instead of guessing. → The avatar is stored on
Contact.ProfileImage, notAccount, so check that contact.
Customer/attendee is filtered by the wrong BU/site
Compare BusinessUnitAccount, BusinessUnitAttendee, Org_Account, Org_Attendee, and request context. Wrong BU scope can be a security issue.
Real-world example: Staff at site B opens the list but a child attending site B is missing. → Keep BU scope correct so data is neither hidden nor leaked. → The
BusinessUnitAttendeelink for the selected BU is missing, so add the relationship instead of broadening the query.
Session missing from Booking
Check term, TPS, term product, site-program link, category rules, and capacity. Booking reads availability from setup; it does not create missing sessions.
Real-world example: Admin opens booking for Term 3 but no sessions are selectable. → Understand that Booking only reads setup; it does not generate sessions. → TPS is not linked to site/program or term products have not been generated, so complete setup first.
Image upload requires crop
First-class UI images must go through crop policy. Generic file uploads are exempt. Avatar/profile images are usually 1:1; wide course/activity images are usually 16:9.
Real-world example: Admin uploads a course image and must crop it to 16:9, while attaching a document does not require crop. → Keep display images consistent without blocking ordinary files. → First-class images follow crop policy; generic uploads are exempt.
Custom URL conflict
Enterprise.CustomUrl must be unique for active enterprises. Site initiator should record an error rather than overwrite another enterprise's custom URL.
Real-world example: A new enterprise uses the same custom URL as an active enterprise. → Avoid two organizations sharing one access URL. → Site initiator detects the conflict and records an error instead of overwriting the other enterprise's URL.