You are here:
Field Service Enhanced Scheduling and Optimization Error Messages
Error messages indicate that something is blocking the operation or automation of scheduling and optimization services. Errors can occur due to operational issues, invalid data, logic configuration, or incorrect setup.
Required Editions
| Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience |
| The Field Service core features, managed package, and mobile app are available in Enterprise, Unlimited, and Developer Editions. |
This is a Field Service managed package feature.
Identify enhanced scheduling and optimization issues and their root cause with detailed error messages that provide insight into the underlying causes of the issue and promote self-sufficient troubleshooting. The error messages include relevant entity IDs, when applicable, and provide actionable guidance. This information aids service managers, implementers, and administrators in resolving problems efficiently.
The table shows common errors that occur during scheduling and optimization operations.
- Error label: Represents the error code for monitoring and statistical purposes.
- Error message: Includes text displayed in the user interface, logs, or activity reports (depending on the specific operation). The message provides specific error details, including relevant entity IDs about the occurrence of the error.
- Potential resolution: Suggests steps to mitigate the issue and prevent error recurrence. You can then adjust configurations or rectify data to resolve the issue.
| Error Label | Error Message | Potential Resolution |
|---|---|---|
| Action_Not_Allowed_More_Than_One_Absence_Update_That_Involves_MDT | We couldn't [action type: delete, insert, update] resource absence because it affects more than one multiday service appointment: [SAID1, SAID2]. Make sure that your optimization request includes only one multiday service appointment and try again. | A resource absence can’t be created or modified if it overlaps with multiple multiday service appointments. To fix this:
|
| Canceled_SAs_Are_Not_Allowed_In_A_MST_Chain | Can't schedule a complex work chain [SA ID1, SA ID2, SA ID3,...] that includes canceled service appointments. Remove the dependency from service appointment [SA ID] and try again. | A complex work chain must be scheduled in its entirety to maintain all service appointments together according to their dependencies. Partial scheduling of the complex work chain isn’t supported. The complex work chain is scheduled as a whole, or not at all. When a service appointment is canceled, it can’t be assigned to a service resource to ensure the resource's availability for other valid appointments. If any service appointment within the complex work chain can’t be scheduled, such as when it's canceled, the entire chain can’t be scheduled. To fix this:
The service appointments within the complex work chain can still be manually scheduled and pinned. If you manually schedule these appointments, the appointments are flagged as rule-violating and removed by the scheduling and optimization processes, unless they’re pinned or included in the Keep Scheduled criteria. |
| Cannot_check_rule_validations_for_unscheduled_appointments | Can’t check rule validations for service appointments that aren’t scheduled: [SA ID1, SA ID2, ...]. Fix the issue and try again. | Unscheduled service appointments aren’t subject to scheduling rules compliance. To fix this, schedule the service appointments and then check rules, or avoid checking rules at this time. |
| Cannot_found_the_invoked_Service_Appointment | We couldn’t find the invoked service appointment [invoked SA Id]. Fix the issue and try again. | To fix this, verify the validity of the service appointment. If the problem persists, contact Salesforce support to open a case. |
| Cannot_Query_TimeZone_For_OH | We couldn't query the time zone information for Operating Hours [OHID] because you don't have the required permissions. Ask your Salesforce admin for help. | You don’t have permission to access the operating hour’s time zone. To fix this, ask your Salesforce admin to grant you access to query operating hours. |
| Conflicting_Working_Territories | There are conflicting Working Territories work rules in your [Policy Name] scheduling policy. Review and update the scheduling policy and try again. | The scheduling policy has conflicting Working Territories work rules. This conflict can be due to:
To fix this, review the Working Territories rules in the scheduling policy and update the rule definitions accordingly. |
| Cycles_Are_Not_Allowed_In_A_MST_Chain | We couldn’t perform the [requestType] request because you can't have circular dependencies between service appointments that are part of a complex work chain. Fix the dependencies and try again: [taskIDs] | Complex work chains can’t have circular dependencies within the chain such that the service appointment dependencies in the chain create a loop. For example, you can’t have service appointment SA1 with the Same Start dependency on service appointment SA2, while at the same time service appointment SA2 has a Start After Finish dependency with service appointment SA1. Or, service appointment SA1 has a Start After Finish dependency on service appointment SA2, while service appointment SA2 has a Start After Finish dependency on service appointment SA1. To fix this, remove invalid dependencies from service appointments in the complex work chain. |
| Enhanced_Match_No_Linking_Object | We couldn’t perform the [ReqType] request because the Extended Match work rule [ruleID] isn't configured correctly. Add the Linking Object and try again. | The Extended Match work rule functionality is based on linking two objects via a junction object. See Work Rule Type: Extended Match. To fix this, open the work rule settings for the Extended Match work rule identified in the error. Make sure that the Linking Object and Linking Object Reference fields are set with the correct values. |
| External_Identifier_is_missing | We couldn’t find an external identifier in the optimization request. Add an external identifier. Or, ask your Salesforce admin for help and provide the transaction ID: [txID] | An external reference ID is the transaction ID that is used internally. To fix this, review your customizations and check that each API call for optimization request has the external identifier set. Refresh and try again, or contact your Salesforce support to open a case. |
| Infeasible_SA_Partially_Overlaps_With_Out_Of_Domain_Complex_Work_SA | We couldn’t perform the request because service appointment [service Id] [starts/ends] outside of the horizon and partially overlaps with a service appointment that has dependencies and is outside of the horizon. Fix the issue and try again. | The service appointment overlaps with another service appointment that’s part of a complex work chain. To fix this:
|
| INVALID_FIELD | We couldn't optimize the schedule because the platform integration user is missing the required permissions. Ask your Salesforce admin for help. | The platform integration user (PIU) doesn’t have the required access permission. To fix this, make sure that the PIU has the required access permissions. Or, ask your Salesforce admin for help. |
| Json_Exceeds_Heap_Size_Limit | We couldn’t schedule or optimize the service appointments because you reached the data loading limit. Reduce the number of service resources or service appointments in your request. Or, ask your Salesforce admin for help. | Data loading is limited to 5000 service appointments or 6000 objects per request. The request has exceeded this limit. To fix this, reduce the number of objects sent in one of these ways:
|
| KeepApptScheduledFieldInvalidField | <Field name> doesn’t exist or isn’t a boolean field. Enter a valid service appointment boolean field name. | The Keep Scheduled functionality is based on a boolean field criteria. See Manage Scheduled Jobs in Field Service. The selected field name doesn't exist or isn't a boolean. To fix this, open the scheduling service setting and make sure the field selected for keeping appointments scheduled is valid, spelled correctly, and boolean. Save your setting changes and try again. |
| Missing_Default_Scheduling_Policy | We couldn’t perform the [requestType] request because there’s no default scheduling policy set for the Dispatcher Console UI in Field Service Settings. Ask your Salesforce admin to define the default scheduling policy and try again. | Every scheduling action requires a scheduling policy. Scheduling actions triggered for the dispatcher console can’t be performed without a default scheduling policy defined for the dispatcher console UI. To fix this, ask your Salesforce admin to define the default scheduling policy. |
| Missing_Gap_Rule_For_STMS | We couldn’t find the Resource Availability work rule in the [Policy Name] scheduling policy for service territory member [stmId]. Add the work rule and try again. | Every scheduling and optimization operation requires a scheduling policy that defines the scheduling rules and objectives. Every scheduling policy must include a Resource Availability work rule to define the resource’s working hours and breaks. To fix this:
|
| Missing_object_permissions | We couldn't [action type] the Service Appointment because you don't have permissions for the Service Appointment object. Ask your Salesforce admin for help. | You don’t have the relevant permissions to perform the action on the specified object. To fix this, ask your Salesforce admin to assign the relevant permission to the specified object type for users triggering the optimization services on those objects. |
| Missing_Schedule_Result | We couldn't schedule service appointment [SA ID] because something went wrong in the scheduling process resulting in an empty schedule. Contact your Salesforce admin for help. | The system returned an empty optimization result. To fix this, refresh and try again, or contact your Salesforce support to open a case. |
| Missing_Scheduling_Policy | We couldn’t perform the {request type} request because scheduling policy [scheduling policy ID] doesn’t exist. Make sure that the provided policy ID is valid, or set a default policy in the Dispatcher Console UI in Field Service Settings. | Every scheduling action requires a scheduling policy. The scheduling policy sent as part of the scheduling operation couldn't be found. This can happen if the scheduling policy is deleted. Scheduling actions triggered for the dispatcher console can’t be performed without a default scheduling policy defined for the dispatcher console UI. To fix this, ask your Salesforce admin to define the default scheduling policy. |
| MST_Chain_Must_Contains_No_More_Than_X_Tasks | We couldn’t perform the [requestType] request because service appointment [taskId] is part of a complex work chain that includes more than [X- parameter] service appointments. Drag the service appointment to schedule it. | A complex work chain can have a maximum of 5 service appointments in the chain, otherwise it can’t be scheduled. To fix this:
|
| NoCandidates | We couldn't get candidates for the service appointment because there aren't any service resources that match the requirements. Fix the issue and try again. | To find candidates, you need a service resource that’s located in the area, has the relevant skills and availability, and complies with any relevant work rules set. To fix this:
|
| No_Operating_Hours_specified_in_request | We couldn’t find operating hours in the [request Type] request. Add operating hours and try again. | Scheduling and optimization services require operating hours data. To fix this, check that all service resources have operating hours. |
| No_Primary_Or_Relocation_STMs | We couldn't perform the [request type] request because service resource [resource ID] doesn't have primary or relocation service territory memberships between [StartDate] and [EndDate]. Define the service territory memberships for this time period and try again. | Service resources must have a primary service territory or a relocation service territory assigned to them whenever work is scheduled. To fix this, make sure that the service resource has an assigned primary service territory or relocation service territory within the specified date range. We recommend that you check that the service resource always has primary or relocation service territory membership |
| No_Timeslots_in_AB_Operating_Hours | We couldn't find any time slots for service appointment [SA ID] within the default operating hours [OH ID]. Define the time slots and try again. | This error indicates that there’s no overlap between when the relevant service resources are available to handle this service appointment, and when the service appointment can be scheduled in terms of available time slots. To fix this, make sure that there’s an overlap between the service resource availability and when the service appointment can be scheduled.
|
| Not_Valid_C2C_Token | We couldn't perform the [request type] request because there isn't a valid C2C token. Ask your Salesforce admin for help. | To fix this, refresh and try again. Or, ask your Salesforce admin for help. |
| O2_Is_Not_Enabled_Error_Message | We couldn't perform the [Request type] request because Enhanced Scheduling and Optimization isn't enabled. Ask your Salesforce admin for help. | Enhanced Scheduling and Optimization isn’t enabled. To fix this, see Enable Enhanced Scheduling and Optimization. |
| O2_Rest_Utils_C2C_Error_Finish | Contact your Salesforce admin and provide them with this error: <error message> | An internal error occurred. To fix this, we recommend that you try to trigger the action again or contact your Salesforce support to open a case. |
| O2_Rest_Utils_C2C_Error_Title | Looks like there’s a problem accessing the optimization service. | An internal error occurred. To fix this, we recommend that you try to trigger the action again or contact your Salesforce support to open a case. |
| O2_Rest_Utils_Callout_Error_Title | Schedule optimization incomplete. | An internal error occurred. To fix this, we recommend that you try to trigger the action again or contact your Salesforce support to open a case. |
| O2_Rest_Utils_Error_Operation_Called_Twice | Can’t call the same service more than once in the same transaction. Service type: [requestType]. Include this service type only once and try again. | To avoid concurrency issues, you can’t trigger the same service on the same data more than once at any time To fix this, make sure only one transaction is triggered at a time. To identify who triggered an operation, ask your Salesforce admin to look at the Activity Report. |
| Optimization_Request_Limit_Services | We couldn't optimize the schedule because you reached the limit of service appointments per optimization request (request ID). Reduce the number of service appointments and try again, or ask your Salesforce admin for help. | The optimization request exceeded the 5000 service appointment limit. To fix this:
|
| Optimization_Request_Limit_Territories | We couldn't optimize the schedule because you reached the limit of service territories per optimization request (request ID). Reduce the number of territories and try again, or ask your Salesforce admin for help. | The maximum number of service territories optimized in a request is 100. The optimization request exceeded this limit. To fix this, reduce the number of service territories in the optimization request. Or, if your whole dataset needs to be optimized, split the request into 2 optimization requests. We recommended that you review Manage Scheduled Jobs When Using Enhanced Scheduling and Optimization to learn more. |
| Overlapping_Absences_Error_Details | Can’t have overlapping breaks in your optimization horizon. Remove the overlaps for resource [Resource ID] during [Date range], and try again. | Breaks can’t overlap. To fix this, review the service resource’s breaks within the horizon and identify the ones that overlap. Change the breaks so that they don’t overlap. |
| Overlapping_Shifts_Exception_Details | We couldn't optimize the schedule because the travel time from the shift that ends at [firstShiftEnd] overlaps with the next shift that starts at [secondShiftStart] for service resource [invalidResourceId]. Shift times include the travel time to and from home at the expense of the service resource. Fix the issue and try again. | A shift (including the job and travel time, or resource absence) can’t overlap with the next shift's job or travel time, or resource absence. To fix this:
|
| Overtime_Not_At_End_Of_Day_Error_Details | Can’t have extended time slots that aren't at the end of the working day. Fix the time slots for resource [Resource ID] on [Date], and try again. | The system supports overtime hours only at the end of the service resource’s working hours. To fix this, update the overtime hours to be at the end of the shift during the optimized horizon. |
| Part_Of_Mst_Chain_Is_Infeasible | We couldn't schedule the complex work chain because service resource [ResID] has appointments scheduled on [DateTimeID] that are pinned and outside of the resource's working hours: [SA ID1, SA ID2,...]. Fix the issue and try again. | The system can’t move Pinned service appointments. A service appointment can be pinned in 2 ways:
To fix this:
|
| Pinned_And_Overlapping_Task_In_MST_Chain | We couldn't schedule service appointment [invoked SA ID] because it's part of a complex work chain that includes a pinned and overlapping service appointment: [pinned and overlapping SAIDs]. Unpin the appointment or fix the overlap, and try again. | When you reschedule a service appointment that’s part of a complex work chain, the whole chain is affected due to dependencies between the chained service appointments. The service appointment can’t be scheduled because it’s part of a complex work chain that includes a pinned service appointment that overlaps with another service appointment, travel time, or resource absence. To fix this:
|
| Recurring_SA_Frequency_Outside_The_Range | We couldn’t schedule recurring service appointments because the frequency is set to [Frequency Value], which is outside of the [lower range limit] - [upper range limit]) range required for the [Frequency Type: Weekly/Monthly/Yearly] frequency. Set the frequency correctly and try again. | Recurring visits are a sequence of visits with the same features that require a repeating shift pattern. To ensure scheduling as expected, the frequency of the recurrence pattern must correlate with the frequency range for the frequency type (Weekly, Monthly, or Yearly). The request includes a frequency and a range that don’t match. To fix this, update the frequency to match the range required for the frequency type. |
| Recurring_SA_Not_Weekly_Frequency | We couldn’t schedule recurring service appointments because only the weekly frequency is supported in the recurrence pattern definition. Set the recurrence to Weekly and try again. | Recurring visits are a sequence of visits with the same features that require a repeating shift pattern. The defined recurrence pattern definition supports a weekly frequency. The request includes a frequency that isn’t weekly. To fix this, change the recurrence frequency to Weekly. |
| Recurring_SA_Number_Of_Days_Is_Smaller | We couldn’t schedule recurring service appointments because the number of planned visits is set to [Num_Visits value], which is lower than the required weekly frequency [frequency value]. Set the values correctly and try again. | Recurring visits are a sequence of visits with the same features that require a repeating shift pattern. To ensure scheduling as expected, the frequency of the recurrence pattern must correlate with the number of visits (days). The number of days is less than the required frequency selected such that the frequency and the number of days in the request don’t match. To fix this:
|
| Recurring_SA_Visit_Number_Less_Then_2 | We couldn’t schedule recurring service appointments because the number of visits in the recurrence pattern is set to [Number={0,1}], which is used for non-recurring visits. Set the value to a number greater than 2 and try again. | Recurring visits are a sequence of visits with the same features that require a repeating shift pattern. When the number of visits in the recurrence pattern is set below 2, the service appointments are considered standard non-recurring visits and there’s no recurrence pattern. To fix this:
|
| RequestTimedOut | Your [Request type] request has timed out. Ask your Salesforce admin for help and provide the transaction ID: [txID] | Some request types have a timeout defined in the system. To investigate the timeout reason, contact your Salesforce admin and provide the transaction ID. Or, try to trigger the action again to be sure the error wasn’t a result of a momentary extreme load. |
| Resource_based_request_domain_limit_exceeded | We couldn't reschedule the service appointment to the selected date because you reached the data loading limit. To schedule the appointment to a significantly later date, first unschedule the appointment and then schedule it to the required date. | When rescheduling a service appointment, the current and new schedule horizons are considered. The combination of these horizons can create a request with a data horizon that exceeds the allowed limit. To fix this, unschedule the service appointment and then reschedule it to the relevant date. This reduces the data loading of the original schedule. |
| RFC_NoAccess | We couldn’t perform the request because you don't have access to the selected criteria field in recordset filter criteria rule [rule ID]. Ask your Salesforce admin for help. | Recordset filter criteria is used for designated work. You don’t have access permissions to the required recordset filter criteria field. To fix this, provide access to the criteria field specified in the recordset filter criteria rules. Or, ask your Salesforce admin for help. |
| Secondary_Bad_Config_No_Primary_Resource | We couldn’t find a primary or relocation service territory membership for service resource [resource ID]. This resource has one or more secondary service territory memberships. Define the missing service territory membership and try again. | Service resources must have an assigned primary or relocation service territory if they have an assigned secondary service territory. To fix this, assign a primary or relocation service territory to the resource. |
| Secondary_Bad_Stm_No_Start_Resource | We couldn’t find a start date for one or more service territories that service resource [resource ID] is a member of. For example, service territory [Territory ID]. Add a start date and try again. | Each service resource allocated to a service territory must be assigned with the start date of allocation for this territory. If not, the system can’t identify when it can allocate jobs for the service resource in this territory. To fix this:
|
| Service_Based_Bad_Request | We couldn’t find details for service appointment [SA ID] in the [request Type] request type. Add the details and try again. | To fix this, verify the validity of the service appointment. If the problem persists, contact Salesforce support to open a case. |
| Service_Based_Bad_Request_Api | We couldn’t find the ServiceID parameter in the input of the [request Type] request. Add the parameter and try again. | We recommend that you try to trigger the action again. If the problem persists, contact Salesforce support to open a case. |
| Service_Territory_Members_With_Different_TZ_For_Resource | We couldn't schedule one or more appointments because at least one of the service resources has multiple time zones. Adjust the service territory membership for service resource [Resource ID], and try again. | Review the service resource’s primary, secondary, and relocation service territory memberships, and make sure that at any given time, all territories that the service resource is assigned to are within the same time zone. |
| Service_Territory_object_has_insufficient_privileges | You don’t have access to the Service Territory object. Ask your Salesforce admin for help. | To fix this, assign the relevant access permission to the service territories for users triggering the optimization services on those territories. |
| Trigger_Mixed_Optimizer_Per_Service_Error | We couldn't perform the request because the service appointments' territories aren't all using the same optimization engine. The service territories of appointment [SAID1] are using Enhanced Scheduling and Optimization, but the service territories of appointment [SAID2] aren't using Enhanced Scheduling and Optimization. Enable Enhanced Scheduling and Optimization for all service territories in Field Service Settings, or update the service territories individually, and try again. | When enabling Enhanced Scheduling and Optimization by territory, all service appointments in a request must be allocated to territories that are all handled by the same optimization engine. To fix this:
|
| Trigger_Mixed_Optimizer_Per_Service_Territory_Error | We couldn't perform the request because the service appointment's territories aren't all using the same optimization engine. These service territories are using Enhanced Scheduling and Optimization: [ESO territoryID1, ESO territoryID2]. These service territories aren't using Enhanced Scheduling and Optimization: [territoryID1, territoryID2]. Update the service territories and try again. | The service appointment's territories must all use the same optimization engine. To fix this:
|
| Trigger_Mixed_Optimizer_Per_STM_Error | We couldn't perform the request because the service resource is a member of territories that aren't all using the same optimization engine. Update the service territories and try again. | When enabling Enhanced Scheduling and Optimization by territory, all service resources must be allocated to territories that are all handled by the same optimization engine. To fix this, make sure that every service resource’s primary, secondary, and relocation territories are using the same optimization engine. |
| Trigger_Service_Pinned_Or_Pinned_Status_Error | Can't reschedule pinned appointments [SA ID1, SA ID2,...]. To reschedule a pinned appointment, unpin it or select a status that isn't pinned. | The system can’t move Pinned service appointments. A service appointment can be pinned in 2 ways:
To fix this, review the service appointments listed in the error message:
|
| Unsupported_Request_Type_for_this_flow | The [request Type] request type isn’t supported. Use global optimization, resource schedule optimization, or in-day optimization instead. | To fix this, review the request to check if you have any customizations calling this request through the API, and validate that the request type is global optimization, resource schedule optimization, or in-day optimization. |

