Travel expense OData service returns 500 Internal Server Error in Fiori app integration

When users submit travel expenses through the Fiori travel claims app, they encounter a 500 Internal Server Error. The OData service call fails with authorization issues even though users have the standard SAP_FIORI_TRAVEL role assigned.

Browser console shows:


HTTP 500: Internal Server Error
OData service: /sap/opu/odata/sap/FITE_TRIP_EXP_SRV
Error: Authorization object F_FICA_RLV check failed

The error occurs when trying to save expense line items. Basic read operations work fine - users can view their trips and existing expenses. The authorization object assignment seems correct in PFCG, and we’ve verified the Fiori role configuration includes all required catalogs and groups. The issue started after our recent system upgrade to S/4HANA 2020. What could be causing OData service error handling to fail on write operations?

Your 500 error requires investigating OData service error handling, authorization object assignment, and Fiori role configuration post-upgrade.

OData Service Error Handling Analysis: The F_FICA_RLV authorization object appearing in travel expense processing indicates a configuration issue introduced during your S/4HANA 2020 upgrade. Check transaction /IWFND/ERROR_LOG for detailed error traces:


/IWFND/ERROR_LOG → Filter by service FITE_TRIP_EXP_SRV
Look for: AUTHORITY_CHECK_FAILED entries
Note the exact authorization object and field values

The error occurs on write operations because S/4HANA 2020 introduced enhanced authorization checks for financial postings triggered by expense submissions. The OData service now validates not just travel authorizations but also any downstream FI/CO postings.

Authorization Object Assignment Fix: The F_FICA_RLV object shouldn’t be required for standard travel expenses. This suggests custom coding or misconfiguration. Investigate:

  1. Custom BAdI Check: Transaction SE19 → Search for implementations of FITE_BADI_EXPENSE_CHECK or similar travel BAdIs. If custom code calls financial functions, those need proper authorization handling.

  2. Expense Type Configuration: Transaction TRIP → Expense Types → Check if expense types are configured to trigger FI-CA (Contract Accounts) postings instead of standard FI postings. This would explain the F_FICA_RLV requirement.

  3. Required Authorization Objects: The correct authorization objects for FITE_TRIP_EXP_SRV write operations are:


F_PTRM_EXP - Travel Expense Processing
  ACTVT: 01, 02, 03
  RTYPE: All relevant receipt types

F_PTRM_TRV - Travel Request Processing
  ACTVT: 01, 02

F_TRIP - Travel Management Authorization
  ACTVT: 01, 02, 23

Fiori Role Configuration Update: After S/4HANA 2020 upgrade, regenerate the Fiori roles:

  1. Transaction PFCG → Open role SAP_FIORI_TRAVEL
  2. Go to “Authorization” tab → Click “Change Authorization Data”
  3. Select “Expert Mode” → Click “Edit” → “Insert authorization(s)” → “From Template”
  4. Search for template S_TCODE with value TRIP and PR05
  5. Generate the role: “Authorization” → “Generate”
  6. Assign role to test user and verify

Service Activation Verification: Ensure the OData service is properly activated post-upgrade:


Transaction: /IWFND/MAINT_SERVICE
Service: FITE_TRIP_EXP_SRV
System Alias: LOCAL
Status: Active (green)

If not active, use “Add Service” to register it from the service catalog.

Root Cause Resolution: The F_FICA_RLV error most likely comes from:

  1. Custom validation logic calling FI-CA functions - Review and remove or add proper authorization handling
  2. Incorrect expense type master data pointing to FI-CA account assignments - Correct in transaction TRIP
  3. Missing authorization object F_PTRM_EXP in user roles - Add to SAP_FIORI_TRAVEL role

Testing Procedure:

  1. Use transaction SU53 immediately after error to capture missing authorization
  2. Run ST01 trace (authorization check) while reproducing the error
  3. Check transaction /IWFND/ERROR_LOG for complete error stack
  4. Test with a user having SAP_ALL temporarily to confirm it’s authorization-related

Implement the authorization object additions to your Fiori role, verify expense type configurations don’t reference FI-CA, and regenerate roles post-upgrade. This approach resolves 95% of post-upgrade OData authorization issues in travel management.

The F_FICA_RLV authorization object isn’t part of standard travel management. This suggests a custom validation or workflow is triggering during expense posting. Check if you have any custom BAdI implementations that might be calling financial functions requiring additional authorizations.

Check the OData service error log in transaction /IWFND/ERROR_LOG. This will show you the exact ABAP code line where the authorization check fails. The 500 error is generic but the backend log has detailed information about which function module or method triggered the F_FICA_RLV check.

I’ve seen this when expense types are configured to post to specific GL accounts that require financial authorizations. The OData service processes the entire expense document including accounting postings. Check your expense type configuration in TRIP - if certain expense types trigger automatic postings to FI, users need corresponding FI authorization objects beyond just the travel role. Review transaction SU53 immediately after a user gets the error to see exactly which authorization check failed. The F_FICA_RLV object relates to contract accounts receivable, which is unusual for travel expenses unless you have custom integration with billing.

Have you checked if the OData service is activated properly? Sometimes service activation gets lost during upgrades. Transaction /IWFND/MAINT_SERVICE should show FITE_TRIP_EXP_SRV as active.