Salesforce-MuleSoft-Developer-II Exam Questions With Explanations
The best Salesforce-MuleSoft-Developer-II practice exam questions with research based explanations of each question will help you Prepare & Pass the exam!
Over 15K Students have given a five star review to SalesforceKing
Why choose our Practice Test
By familiarizing yourself with the Salesforce-MuleSoft-Developer-II exam format and question types, you can reduce test-day anxiety and improve your overall performance.
Up-to-date Content
Ensure you're studying with the latest exam objectives and content.
Unlimited Retakes
We offer unlimited retakes, ensuring you'll prepare each questions properly.
Realistic Exam Questions
Experience exam-like questions designed to mirror the actual Salesforce-MuleSoft-Developer-II test.
Targeted Learning
Detailed explanations help you understand the reasoning behind correct and incorrect answers.
Increased Confidence
The more you practice, the more confident you will become in your knowledge to pass the exam.
Study whenever you want, from any place in the world.
Salesforce Salesforce-MuleSoft-Developer-II Exam Sample Questions 2025
Start practicing today and take the fast track to becoming Salesforce Salesforce-MuleSoft-Developer-II certified.
2604 already prepared
Salesforce Spring 25 Release60 Questions
4.9/5.0
Refer to the exhibit.
What required changes can be made to give a partial successful response in case the
United Airlines API returns with a timeout?
A. Add a Scatter-gather component inside a Try scope.
Set the payload to a default value ‘Error’ inside the error handler using the On Error
Propagate scope.
B. Add Flow Reference components inside a Try scope.
Set the payload to a default value’’ insider the error handler using the ON Error Continue
scope
C. Add Flow Reference components inside a Try scope
Set the payload to a default value ‘’ inside the error handler using the On Error Propagate
scope
D. Add a Scatter-Gather component inside a Try scope.
Set the payload to a defaultvalue ‘Error’’ inside the error handler using the On Error
Continue scope.
Set the payload to a defaultvalue ‘Error’’ inside the error handler using the On Error Continue scope.
Explanation:
Let’s dive into this MuleSoft flow and figure out how to handle a timeout from the United Airlines API while still providing a partial successful response. The diagram shows a Listener triggering a flow that uses a Scatter-Gather component to call two services (getDeltaAirlines and getUnitedAirlines via Flow References) and then concatenates the results with a Transform Message. The goal is to handle a timeout from the United Airlines API gracefully, ensuring the flow continues with the Delta Airlines data and returns a meaningful response.
A timeout in the United Airlines API call means one of the Scatter-Gather routes will fail. By default, a Scatter-Gather component will fail the entire flow if any route fails unless we manage the error. To achieve a partial success—where the flow uses the successful Delta Airlines data and provides a default value for the failed United Airlines call—we need an error-handling strategy that keeps the process alive and sets a fallback value.
The key here is the Try scope, which allows us to wrap the Scatter-Gather and handle errors without stopping the flow. Inside the Try scope, if an error occurs (like a timeout), we can use an error handler to manage it. The question offers two error-handling options: On Error Propagate and On Error Continue. On Error Propagate will pass the error up the flow, potentially failing it, while On Error Continue will catch the error, allow the flow to proceed, and let us set a default payload. Since we want a partial success, On Error Continue is the better fit—it lets us recover from the timeout and proceed with the available data.
Now, let’s look at the options:
❌ A. Add a Scatter-Gather component inside a Try scope. Set the payload to a default value ‘Error’ inside the error handler using the On Error Propagate scope.
This wraps the Scatter-Gather in a Try scope, which is good, but using On Error Propagate means the error will propagate, likely failing the flow. This doesn’t align with achieving a partial success, so this is incorrect.
❌ B. Add Flow Reference components inside a Try scope. Set the payload to a default value ‘’ inside the error handler using the On Error Continue scope.
Placing individual Flow References (getDeltaAirlines and getUnitedAirlines) inside a Try scope would mean each call is independently wrapped, which could work but complicates the flow. The Scatter-Gather already handles parallel calls, so this is overkill. Plus, setting the payload to an empty string (‘’) isn’t meaningful for a default value. This option is impractical.
❌ C. Add Flow Reference components inside a Try scope. Set the payload to a default value ‘’ inside the error handler using the On Error Propagate scope.
Similar to B, this wraps individual Flow References in a Try scope, which isn’t necessary with Scatter-Gather. The empty string default and On Error Propagate combination also fails to support partial success, making this incorrect.
✅ D. Add a Scatter-Gather component inside a Try scope. Set the payload to a default value ‘Error’ inside the error handler using the On Error Continue scope.
This is the winner. Wrapping the Scatter-Gather in a Try scope lets us catch the timeout error from the United Airlines call. Using On Error Continue in the error handler allows the flow to proceed, and setting the payload to ‘Error’ (or a similar default) for the failed call ensures we have a placeholder value. The Scatter-Gather will still process the successful Delta Airlines data, and the Transform Message can concatenate the results, giving us a partial successful response.
To implement this, you’d place the Scatter-Gather inside a Try scope, configure an On Error Continue handler, and use a Set Payload component in the error handler to assign ‘Error’ (or a more descriptive default) when the timeout occurs. The flow then continues, merging the Delta Airlines data with the default value.
✅ Answer: D
The correct approach uses a Try scope around the Scatter-Gather to catch the timeout error from the United Airlines API. The On Error Continue scope in the error handler allows the flow to recover by setting a default payload (‘Error’), enabling a partial successful response with the Delta Airlines data. This leverages MuleSoft’s error-handling capabilities to maintain flow resilience.
ℹ️ Reference:
MuleSoft Documentation on Error Handling and Scatter-Gather Component.
Which type of cache invalidation does the Cache scope support without having to write any additional code?
A. Write-through invalidation
B. White-behind invalidation
C. Time to live
D. Notification-based invalidation
Explanation:
Below is the explanation of the correct and incorrect answers for the question about the type of cache invalidation supported by the Cache scope in MuleSoft without additional code, with references integrated naturally within the explanations as requested. The references are drawn from MuleSoft’s official documentation to ensure accuracy.
✅ Correct Answer: C. Time to Live
The Cache scope in MuleSoft supports Time to Live (TTL) invalidation by default, allowing cached data to expire automatically after a configured duration without requiring additional code. You set the TTL (via the entryTtl parameter) in the caching strategy’s object store configuration, and the Mule runtime handles the expiration automatically. This is ideal for scenarios like caching frequently requested data, such as flight pricing, where data can be refreshed periodically. MuleSoft’s documentation on the Cache scope and caching strategies confirms that TTL is a built-in feature, configurable through the object store settings in Anypoint Studio or XML, ensuring no extra coding is needed.
❌ Incorrect Answers:
A. Write-through invalidation
Write-through invalidation involves updating both the cache and the underlying data store simultaneously when data changes. The Cache scope in MuleSoft does not support this mechanism out-of-the-box. Implementing write-through would require custom logic to synchronize cache and data store updates, which goes beyond the default capabilities of the Cache scope. MuleSoft’s documentation on caching strategies does not list write-through as a supported invalidation method without additional development.
B. Write-behind invalidation
Write-behind (or write-back) invalidation updates the cache first and asynchronously updates the data store later. This approach requires custom logic to manage asynchronous updates and ensure data consistency, which is not natively supported by the Cache scope. MuleSoft’s documentation on the Cache scope emphasizes TTL-based expiration and manual invalidation (via Invalidate Key/Cache components), not write-behind mechanisms.
D. Notification-based invalidation
Notification-based invalidation relies on external events, such as messages from a queue or event bus, to trigger cache eviction. The Cache scope does not natively support this without custom code or connectors to handle event-driven invalidation. MuleSoft’s documentation on cache invalidation mentions TTL and manual invalidation components (Invalidate Key and Invalidate Cache) but does not include notification-based invalidation as a default feature.
🧩 Summary:
Option C is correct because the Cache scope natively supports Time to Live (TTL) invalidation, allowing automatic expiration of cache entries through configuration in the object store, as outlined in MuleSoft’s documentation. Options A (write-through), B (write-behind), and D (notification-based) are not supported without additional code or configuration.
ℹ️ References:
MuleSoft Documentation: Cache Scope – Details the use of TTL via entryTtl in the object store for automatic cache invalidation.
MuleSoft Documentation: Invalidate Cache Entries – Describes TTL as a default invalidation method and mentions Invalidate Key/Cache components for manual invalidation, but no mention of write-through, write-behind, or notification-based invalidation as native features.
MuleSoft Documentation: Set Up a Caching Strategy – Confirms TTL configuration in the object store without requiring custom code.
Refer to the exhibit.
The flow name is ‘’implementation’’ with code for the MUnit test case.
When the MUnit test case is executed,what is the expected result?
A. The test case fails with an assertion error
B. The test throws an error and does not start
C. The test case fails with an unexpected error type
D. The test case passes
Explanation:
Since the question refers to an exhibit that contains the Mule flow named "implementation" and the code for an MUnit test case, but the exhibit is not provided, I will base the explanation on typical MUnit test case scenarios in MuleSoft and the provided answer choices. MUnit is MuleSoft's testing framework used to test Mule flows, and assertion errors typically occur when an assertion in the test case (e.g., using the assert-that or assert-equals operation) fails to validate the expected outcome.
Here’s a reasoned analysis of why A is the most likely answer:
MUnit Test Case Execution: An MUnit test case typically includes a Mule flow (in this case, named "implementation") and assertions to verify the flow’s behavior. The test case will execute the flow and compare the actual output (e.g., payload, attributes, or variables) against expected values defined in the test.
Assertion Error: An assertion error occurs when the actual output of the flow does not match the expected output defined in the MUnit test case. For example, if the assert-equals operation checks that the payload is "expectedValue" but the flow produces "actualValue", the test will fail with an assertion error.
Common Scenario: In MuleSoft MUnit tests, assertion errors are common when:
➜ The flow logic produces an unexpected payload, variable, or attribute.
➜ The test case is configured with incorrect expected values.
➜ The flow has a bug that causes it to deviate from the expected behavior.
Given the answer choices, A. The test case fails with an assertion error is the most specific and aligns with a typical MUnit failure caused by a mismatch between expected and actual results.
Why not the other options?
B. The test throws an error and does not start:
This is unlikely because MUnit tests are designed to start unless there is a severe configuration issue (e.g., invalid XML, missing dependencies, or a syntax error in the test case). If the test case is well-formed, it will start and execute the flow, even if it fails due to an assertion. This option suggests a pre-execution failure, which is less common in MUnit.
C. The test case fails with an unexpected error type:
This option is vague and less likely. An "unexpected error type" could imply a runtime exception (e.g., a NullPointerException or a database connection error) in the flow or test case. However, MUnit tests are typically designed to handle expected error scenarios, and assertion errors are the standard failure mode for validation issues. Without specific evidence of an unexpected error in the flow or test, this is not the best choice.
D. The test case passes:
If the test case passes, it means the flow’s output matches all assertions in the MUnit test. However, since the question implies a failure (by offering multiple failure-related options), and without the exhibit confirming a perfect match between expected and actual results, this is unlikely.
Reference:
➜ MuleSoft MUnit Documentation: MUnit Testing Framework – Explains how MUnit tests Mule flows and uses assertions to validate outcomes.
➜ MUnit Assertions: MUnit Assertions Documentation – Describes assertion operations like assert-equals and assert-that, which throw assertion errors when validation fails.
➜ MuleSoft Best Practices: Testing Mule Applications – Discusses common testing scenarios and failure modes in MUnit.
Multiple individual Mute application need to use the Mule Maven plugin to deploy to
CloudHub.
The plugin configuration should .. reused where necessary and anything project, specific
should be property-based.
Where should the Mule Maven details be configured?
A. A parent pom.xml
B. Settings, xml
C. Pom, xml
D. A Bill of Materials (BOM) parent pm
Explanation:
Understanding the Problem:
Multiple Mule applications need to deploy to CloudHub using the Mule Maven Plugin.
The plugin configuration should be reusable across projects, while project-specific settings (e.g., environment, app name) should be property-driven.
The question asks where the Mule Maven Plugin details should be configured for maximum reusability.
of Options:
Option A: A parent pom.xml
Why?
1.A parent pom.xml allows centralized plugin management for multiple Mule projects.
2.Common configurations (e.g., Mule Maven Plugin version, CloudHub settings) can be inherited by child projects.
3.Project-specific values (e.g., application.name, environment) can be overridden using Maven properties (
Best Practice:
MuleSoft recommends using a parent POM for shared configurations in a multi-project setup.
Option B: settings.xml
Why?
1.settings.xml is used for Maven global settings (e.g., repositories, credentials) but not for plugin configurations.
2.It cannot define the Mule Maven Plugin behavior for deployments.
Option C: pom.xml (Partially Correct but Not Best for Reusability)
Why?
1.While you can define the Mule Maven Plugin in an individual project’s pom.xml, this does not promote reusability.
2.If multiple projects need the same plugin config, duplicating it in each pom.xml violates DRY (Don’t Repeat Yourself) principles.
Option D: A Bill of Materials (BOM) parent POM ( Incorrect for Plugin Config)
Why?
A BOM is used for dependency management (e.g., Mule runtime versions) but not for plugin configurations.
While useful, it does not solve the problem of reusable plugin setups.
Best Practice for Mule Maven Plugin Configuration:
Parent POM (pom.xml)
Define the Mule Maven Plugin in a parent POM with default configurations.
Example:

.
.
Child POM (pom.xml)
Inherit from the parent POM
.
Override project-specific properties (e.g., ${environment}, ${application.name}).
Reference:
MuleSoft Docs:
Mule Maven Plugin Configuration
Maven Docs:
POM Inheritance
A company with MuleSoft Titanium develops a Salesforce System API using MuleSoft outof- the-box Salesforce Connector and deploys the API to CloudHub. Which steps provide the average number of requests and average response time of the Salesforce Connector?
A. Access Anypoint Monitoring’s built-in dashboard. Select a resource.
Locate the information under the Connectors tab.
B. Access Anypoint Monitoring’s built-in dashboard
Select a resource.
Create a custom dashboard to retrieve the information.
C. Access Anypoint Monitoring built-in dashboard.
Select a resource.
Locate the information under Log Manager < Raw Data.
D. Change the API Implementation to capture the information in the log.
Retrieve the information from the log file.
Locate the information under the Connectors tab.
Explanation:
MuleSoft Titanium subscription includes Anypoint Monitoring (Advanced), which provides rich observability features, including:
➟ Built-in dashboards
➟ Per-connector metrics
➟ Response times
➟ Number of requests
➟ Error rates
When using Anypoint Monitoring’s built-in dashboard for a deployed app (e.g., your Salesforce System API on CloudHub), you can:
1. Select the deployed application from the monitoring dashboard.
2. Navigate to the "Connectors" tab.
3. View per-connector metrics like:
➟ Average number of requests
➟ Average response time
➟ Failures per minute
This provides the required information without writing custom code or logs.
❌ Why other options are incorrect:
B. Create a custom dashboard
🔸 Incorrect: Custom dashboards are optional and used for specific KPIs or cross-app metrics. Built-in dashboards already provide connector-level insights.
C. Locate information under Log Manager → Raw Data
🔸 Incorrect: Raw logs provide event-level data, not aggregate metrics like average response time or request counts.
D. Change the API implementation to log the information
🔸 Incorrect: Manually logging metrics is error-prone and unnecessary when using Titanium’s built-in monitoring.
🔗 Reference:
MuleSoft Docs – Anypoint Monitoring (Titanium)
Monitoring Connectors in CloudHub
Prep Smart, Pass Easy Your Success Starts Here!
Transform Your Test Prep with Realistic Salesforce-MuleSoft-Developer-II Exam Questions That Build Confidence and Drive Success!