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 Release
60 Questions
4.9/5.0

When implementing a synchronous API where the event source is an HTTP Listener, a developer needs to return the same correlation ID backto the caller in the HTTP response header.
How can this be achieved?

A. Enable the auto-generate CorrelationID option when scaffolding the flow

B. Enable the CorrelationID checkbox in the HTTP Listener configuration

C. Configure a custom correlation policy

D. NO action is needed as the correlation ID is returned to the caller in the response header by default

D.   NO action is needed as the correlation ID is returned to the caller in the response header by default

Explanation:

MuleSoft automatically generates a correlation ID when an event is received by an HTTP Listener.
If the incoming request includes an X-Correlation-ID header, Mule will use that value.
If not, Mule generates a new one using its correlation ID generator.
This ID is stored in the event context and is automatically propagated in the response headers unless explicitly disabled.
So, no manual configuration is required to return it — Mule does this by default for traceability and logging purposes2.

Want to verify it?
You can inspect the response headers using a tool like Postman or curl and look for:
X-Correlation-ID:

Why the Other Options Are Incorrect:

A. Auto-generate CorrelationID when scaffolding
No such scaffolding option exists — correlation ID is runtime behavior.

B. CorrelationID checkbox in HTTP Listener
There’s no checkbox for this in the HTTP Listener config.

C. Custom correlation policy
Only needed if you want to override the default behavior — not required for basic propagation.

Which statement is true about using mutual TLS to secure an application?

A. Mutual TLS requires a hardware security module to be used

B. Mutual TLS authenticates the identity of the server before the identity of the client

C. Mutual TLS ensures only authorized end users are allowed to access an endpoint

D. Mutual TLS increases the encryption strength versus server-side TLS alone

B.   Mutual TLS authenticates the identity of the server before the identity of the client

Explanation:

Mutual TLS (mTLS) is a security protocol that requires both the client and the server to authenticate each other using X.509 certificates before establishing a secure connection. Below is a clean explanation of why option B is correct and why the other options are incorrect, with references to standard cryptographic principles and TLS practices.

Correct Answer: B. Mutual TLS authenticates the identity of the server before the identity of the client

In mutual TLS, the authentication process follows the TLS handshake protocol. During the handshake:

➟ The client initiates a connection, and the server presents its certificate to prove its identity.
➟ The client verifies the server's certificate against a trusted Certificate Authority (CA).
➟ If the server is configured for mTLS, it then requests the client’s certificate.
➟ The client sends its certificate, which the server verifies against a trusted CA.

Thus, the server’s identity is authenticated first, followed by the client’s. This sequential order is a fundamental part of the TLS handshake in mTLS.

ℹ️ Reference:
RFC 5246 (TLS 1.2) and RFC 8446 (TLS 1.3) describe the TLS handshake process, where server authentication occurs before client authentication in mutual TLS scenarios. OWASP: TLS Security Guide emphasizes the handshake order in mTLS.

Incorrect Answers:

A. Mutual TLS requires a hardware security module to be used
Why it’s wrong: Mutual TLS does not mandate the use of a hardware security module (HSM). An HSM is a physical device used to manage and protect cryptographic keys, but mTLS can be implemented using software-based key stores or other secure storage mechanisms. While HSMs enhance security for key management, they are not a requirement for mTLS.
ℹ️ Reference: NIST SP 800-52r2 (Guidelines for TLS Implementations) does not list HSMs as a requirement for mTLS. HSMs are recommended for high-security environments but are optional.

C. Mutual TLS ensures only authorized end users are allowed to access an endpoint
Why it’s wrong: mTLS authenticates the client’s identity at the TLS layer using certificates, not the end user’s identity. It verifies that the client device or application possesses a valid certificate issued by a trusted CA, but it does not inherently authenticate individual end users. User authentication typically requires additional mechanisms (e.g., OAuth, SAML, or username/password) at the application layer.
ℹ️ Reference: IETF RFC 8705 (OAuth 2.0 Mutual-TLS Client Authentication) clarifies that mTLS authenticates clients, not end users. User authorization is handled separately.

D. Mutual TLS increases the encryption strength versus server-side TLS alone
Why it’s wrong: Mutual TLS does not inherently increase the encryption strength (e.g., cipher suite strength or key length) compared to server-side TLS. Both mTLS and server-side TLS use the same encryption algorithms and key exchange mechanisms defined by the TLS protocol. The primary difference is that mTLS adds client authentication, enhancing security by ensuring both parties are trusted, but it does not affect the encryption strength.
ℹ️ Reference: RFC 8446 (TLS 1.3) specifies that encryption strength depends on negotiated cipher suites, not on whether mutual authentication is used.

Summary
Option B is correct because mutual TLS follows the TLS handshake protocol, authenticating the server before the client. The other options are incorrect because mTLS does not require HSMs (A), does not authenticate end users (C), and does not increase encryption strength (D). These conclusions align with standard TLS specifications and security best practices.

Which properties are mandatory on the HTTP Connector configuration in order to use the OAuth 2.0 AuthorizationCode grant type for authentication?

A. External callback URL, access token URL, client ID response access token

B. Token URL, authorization URL, client ID, client secret local callback URL

C. External callback URL, access token URL, client ID, response refresh token

D. External callback URL, access token URL, local authorization URL, authorization URL, client ID, client secret

D.   External callback URL, access token URL, local authorization URL, authorization URL, client ID, client secret

Explanation:

Let’s break down this HTTP Connector configuration puzzle for OAuth 2.0 Authorization Code grant type authentication in MuleSoft! The Authorization Code grant type is a common flow where a user authorizes an application, receives an authorization code, and exchanges it for an access token. To set this up in the HTTP Connector, we need to configure the necessary properties to facilitate this process, and the question asks which ones are mandatory.

In MuleSoft, when configuring the HTTP Connector for OAuth 2.0 Authorization Code, the connector handles the interaction with the authorization server. The key requirements include endpoints for the authorization and token exchange, identification of the client application, and a callback mechanism to receive the authorization code. Let’s map this to the properties:

➡️ Authorization URL: This is where the user is redirected to authenticate and authorize the application. It’s essential for initiating the flow.
➡️ Token URL (Access Token URL): This endpoint is used to exchange the authorization code for an access token. It’s a critical part of the process.
➡️ Client ID: A unique identifier for your application, provided by the authorization server, required to identify the client.
➡️ Client Secret: A secret key paired with the client ID to authenticate the client to the authorization server.
➡️ Callback URL: This is where the authorization server redirects the user after authorization, providing the authorization code. Mule distinguishes between an external callback URL (the publicly accessible URL) and a local callback URL (used internally by the connector). Both are relevant, but the external one is typically configured as the redirect URI, while the local one is managed by Mule.

Now, let’s evaluate the options:

❌ A. External callback URL, access token URL, client ID response access token
This includes the external callback URL and access token URL, which are good starts, and the client ID is present. However, “client ID response access token” isn’t a standard property—it seems like a misphrasing. The client secret is missing, which is mandatory for secure authentication. This is incomplete.

❌ B. Token URL, authorization URL, client ID, client secret local callback URL
This has the token URL, authorization URL, client ID, and client secret—all key components. The “local callback URL” suggests Mule’s internal handling, but it doesn’t explicitly mention the external callback URL, which is typically required as the redirect URI. This is close but might lack the full callback configuration.

❌ C. External callback URL, access token URL, client ID, response refresh token
This includes the external callback URL, access token URL, and client ID, which are solid. However, “response refresh token” isn’t a configuration property—refresh tokens are part of the response, not a setting to provide. The client secret is missing, making this insufficient.

✅ D. External callback URL, access token URL, local authorization URL, authorization URL, client ID, client secret
This option packs a lot in. It includes the external callback URL (the redirect URI), access token URL (token endpoint), authorization URL (where the user authenticates), client ID, and client secret—all mandatory for the Authorization Code flow. The “local authorization URL” seems redundant or possibly a typo, but the presence of the correct authorization URL and other essentials covers the requirement. The local callback URL isn’t explicitly listed, but Mule can infer it internally when the external one is set.

The Authorization Code flow requires the authorization URL to start the process, the token URL to get the access token, the client ID and client secret to authenticate the client, and a callback URL to receive the code. Option D covers these bases, even with the extra “local authorization URL” (likely a question error). The HTTP Connector configuration in MuleSoft’s OAuth 2.0 setup mandates these properties, and the external callback URL serves as the redirect URI, which is critical.

Answer: D
For the OAuth 2.0 Authorization Code grant type in the HTTP Connector, you need the authorization URL to initiate user authentication, the access token URL to exchange the authorization code for a token, the client ID and client secret to identify and authenticate the application, and an external callback URL as the redirect URI. Option D includes all these mandatory properties, ensuring the connector can complete the flow, despite the possible typo of “local authorization URL.”

Reference:
MuleSoft Documentation on HTTP Connector OAuth 2.0 and OAuth 2.0 Authorization Code Grant Type.

Refer to the exhibit.

A developer generates the base scaffolding for an API in Anypoint Studio. Which HTTP status code is returned while testing using the API Kit console if no values are entered in client-secret?

A. HTTP status code:200

B. HTTP status code:403

C. HTTP status code:400

D. HTTP status code:500

B.   HTTP status code:403

Explanation:

✅ When an API is generated using the base scaffolding in Anypoint Studio’s API Kit, it includes default security configurations, typically requiring a client_id and client_secret for authentication (e.g., via the Client Credentials flow in OAuth 2.0 or API key-based validation). If the client-secret is not provided in the API Kit console during testing, the API Kit’s validation mechanism detects the missing or invalid credential and rejects the request. This results in an HTTP status code 403 (Forbidden), indicating that the client is not authorized to access the resource due to invalid or missing authentication credentials. MuleSoft’s API Kit documentation (Mule 4) explains that API Kit enforces security constraints defined in the API specification (e.g., RAML or OpenAPI), and missing required parameters like client-secret trigger a 403 response when security schemes are applied.

❌ Incorrect Answers:

❌ A. HTTP status code: 200
An HTTP status code 200 (OK) indicates a successful request with a valid response. If the client-secret is missing, the API Kit’s validation or security scheme (e.g., OAuth or API key) will fail, preventing a successful response. MuleSoft’s documentation on API Kit and HTTP status codes notes that 200 is returned only when all required parameters and security credentials are valid, which is not the case here.

❌ C. HTTP status code: 400
An HTTP status code 400 (Bad Request) is returned when the request is malformed, such as when required query parameters or body fields are missing or incorrectly formatted. While client-secret is a required parameter, its absence in the context of API Kit’s security validation (e.g., for OAuth or API key authentication) typically results in a 403 (Forbidden) rather than a 400, as the issue is authentication-related, not a syntactical error in the request. MuleSoft’s API Kit documentation distinguishes 400 for malformed requests from 403 for authentication/authorization failures.

❌ D. HTTP status code: 500
An HTTP status code 500 (Internal Server Error) indicates a server-side error, such as an unhandled exception in the Mule flow or API implementation. A missing client-secret is a client-side issue caught by API Kit’s validation layer before processing reaches the server logic, so it does not trigger a 500. MuleSoft’s documentation on error handling in API Kit confirms that security validation errors, like missing credentials, result in client-facing errors (e.g., 403), not server errors.

🧩 Additional Context:
The base scaffolding generated by API Kit in Anypoint Studio typically includes a RAML or OpenAPI specification with a security scheme (e.g., client_id and client_secret as query parameters or headers). The API Kit console, used for testing, enforces these security requirements. When no client-secret is provided, the API Kit router validates the request against the defined security scheme and returns a 403 status code to indicate an authorization failure.

🧩 Summary:
Option B is correct because a missing client-secret in the API Kit console results in an HTTP 403 (Forbidden) status code due to the failure to meet the API’s authentication requirements. Options A (200), C (400), and D (500) are incorrect because they represent successful responses, malformed requests, or server errors, respectively, none of which apply to a missing client-secret in this context.

ℹ️ References:
MuleSoft Documentation: API Kit (Mule 4) – Details how API Kit enforces security schemes from the API specification and returns 403 for authentication/authorization failures.
MuleSoft Documentation: HTTP Status Codes in API Kit – Explains that 403 is used for invalid or missing credentials, while 400 is for malformed requests and 500 for server errors.
RAML Specification – Notes that security schemes like client ID/secret validation result in 403 responses when credentials are missing or invalid.

A Mule implementation uses a HTTP Request within an Unit Successful scope to connect to an API. How should a permanent error response like HTTP:UNAUTHORIZED be handle inside Until Successful to reduce latency?

A. Configure retrying until a MULERETRY_EXHAUSTED error is raised or the API responds back with a successful response.

B. In Until Successful configuration, set the retry count to 1 for error type HTTP: UNAUTHORIZED.

C. Put the HTTP Request inside a try scope in Unit Successful.
In the error handler, use On Error Continue to catch permanent errors like HTTP UNAUTHORIZED.

D. Put the HTTP Request inside a try scope in Unit Successful.
In the error handler, use On Error Propagate to catch permanent errors like HTTP UNAUTHORIZED.

C.   Put the HTTP Request inside a try scope in Unit Successful.
In the error handler, use On Error Continue to catch permanent errors like HTTP UNAUTHORIZED.

Explanation:

To reduce latency when handling a permanent error response like HTTP:UNAUTHORIZED in a Mule implementation using an Until Successful scope, the best approach is:
✅ C. Put the HTTP Request inside a try scope in Until Successful. In the error handler, use On Error Continue to catch permanent errors like HTTP:UNAUTHORIZED.

Why HTTP:UNAUTHORIZED should not be retried: HTTP:UNAUTHORIZED (401) is a permanent error, indicating that the request lacks valid authentication credentials. Retrying the same request without modifying the credentials will not resolve the issue and will only increase latency due to unnecessary retries.

Why use a Try Scope with On Error Continue: Placing the HTTP Request inside a Try scope within the Until Successful scope allows you to handle errors explicitly. Using On Error Continue for HTTP:UNAUTHORIZED ensures that the flow continues without retrying the request, as this error is not transient. This approach minimizes latency by avoiding futile retry attempts and allows the flow to proceed with alternative logic (e.g., logging, fallback, or response handling).

❌ Why not the other options:

A. Configure retrying until a MULE:RETRY_EXHAUSTED error is raised or the API responds back with a successful response: This approach would cause the Until Successful scope to keep retrying the request, even for a permanent error like HTTP:UNAUTHORIZED. This increases latency unnecessarily, as the error will not resolve without changing the credentials.

B. In Until Successful configuration, set the retry count to 1 for error type HTTP:UNAUTHORIZED: While setting a low retry count reduces the number of attempts, it still introduces unnecessary retries for a permanent error. It’s better to avoid retries altogether for HTTP:UNAUTHORIZED.

D. Put the HTTP Request inside a try scope in Until Successful. In the error handler, use On Error Propagate to catch permanent errors like HTTP:UNAUTHORIZED: Using On Error Propagate will propagate the error up the flow, potentially stopping the Until Successful scope or the entire flow. This does not allow the flow to continue gracefully, which is often undesirable for handling permanent errors like HTTP:UNAUTHORIZED.

How it works in Mule:

➤ The Until Successful scope retries the enclosed logic for transient errors until a success condition is met or the retry limit is exhausted.
➤ By wrapping the HTTP Request in a Try scope and configuring an On Error Continue handler for HTTP:UNAUTHORIZED, you can catch the error, handle it (e.g., log it or return a custom response), and allow the flow to proceed without retrying the failed request.
➤ This approach ensures minimal latency by avoiding unnecessary retries for permanent errors while still allowing the Until Successful scope to handle transient errors appropriately.

Reference:
MuleSoft Documentation: Error Handling and Until Successful Scope

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!

Frequently Asked Questions

The MuleSoft Developer II Exam is an advanced certification designed for experienced MuleSoft developers who build and manage complex integrations using Anypoint Platform. It validates expertise in designing scalable APIs, implementing advanced DataWeave transformations, applying error handling strategies, and deploying Mule applications across CloudHub and on-premise environments.
The exam covers several core domains:

Anypoint Platform Development (25%): Building Mule applications using Anypoint Studio, managing connectors, and working with flows, subflows, and private flows.

API Design and Development (20%): Designing RESTful APIs with RAML, applying API-led connectivity principles, and managing API lifecycle through Anypoint Exchange.

DataWeave Transformations (20%): Writing advanced DataWeave scripts to transform, map, and manipulate complex data structures including JSON, XML, and CSV formats.

Error Handling and Debugging (15%): Implementing robust error handling strategies, using Mule debugger, and managing exceptions across synchronous and asynchronous flows.

Deployment and Runtime Management (20%): Deploying applications to CloudHub, Runtime Fabric, and on-premise runtimes, and monitoring performance through Anypoint Monitoring.
Number of questions: 60 multiple-choice/multiple-select questions
Time allowed: 120 minutes
Passing score: 70%
To prepare effectively, start by completing the MuleSoft Developer I certification if you have not already, as it covers foundational concepts that this exam builds upon. Use MuleSoft official training courses, particularly the "Anypoint Platform Development: Advanced" course, and practice hands-on development in Anypoint Studio. Focus heavily on DataWeave scripting and real-world API design scenarios. Additionally, practice exams from SalesforceKing can help you assess your readiness, identify weak areas, and get comfortable with the exam question format before test day.
The MuleSoft Developer II exam is considered one of the more challenging Salesforce certifications due to its advanced technical depth. MuleSoft recommends:

1+ year of hands-on experience building integrations with Anypoint Platform
Prior completion of the MuleSoft Developer I certification
Strong proficiency in DataWeave 2.0 and API-led connectivity design patterns
Familiarity with CloudHub deployment, Runtime Manager, and Anypoint Monitoring tools
SalesforceKing provides up-to-date practice tests for MuleSoft Developer II Exam, covering all key domains including DataWeave transformations, API design, error handling, and CloudHub deployment. The practice tests include real-world integration scenarios and hands-on style questions that closely mirror the actual exam format, helping candidates familiarize themselves with question styles, sharpen their technical knowledge, and identify gaps in understanding for targeted and efficient study.
Yes, candidates using SalesforceKing MuleSoft Developer II practice tests are reported to have a 90-95% first-attempt pass rate, compared to 50-60% for those without practice tests. The platform questions simulate the actual exam environment, improve time management under pressure, and boost confidence by clearly highlighting strengths and weaknesses, allowing for focused preparation and significantly reducing the likelihood of costly exam retakes.