Historical learning notes and practice questions. See the issuer notice above for credential status and current learning options.
Independent study resource
Exam objectives and policies can change. Confirm current details with the certification issuer.
Check current objectives
Use the official exam guide as the source for current objectives and section weights.
Practice for learning
Use sample questions to review concepts and identify topics for further study.
Works on Any Device
Full practice experience on phone, tablet, or desktop
Free, No Sign-Up
Start practicing immediately, no account or email required
Salesforce Certified Heroku Developer Accredited Professional – Complete 2026 Guide
Historical learning notes for Salesforce Certified Heroku Developer Accredited Professional. See the issuer notice above for credential status and current learning options.
Recommended Prerequisites
We recommend completing this certification first to prepare you better.
Current exam registration and delivery are unavailable. See the issuer notice above for current learning options.
Exam Topics
Last updated:
Who may use this historical learning reference?
- Heroku developers: You deploy and run apps on Heroku and want a credential that shows you know the platform well.
- Salesforce-adjacent developers: You build apps that sit next to Salesforce, such as customer portals or data services, and run them on Heroku.
- Career builders: You are a web developer adding Salesforce skills, and Heroku is the natural bridge.
Official references: Use the issuer’s current materials to confirm exam objectives, format, and fees before booking.
Official sources: Salesforce exam pricing·Independent exam-prep resource; details may change.
Heroku Developer AP: Key Concepts
Buildpacks, Runtime & Procfile
When you push code, Heroku uses a buildpack to detect the language and build it into a slug, or builds a Docker image if you use container deploys. The Procfile in the root of the app says which commands to run: `web` for the process that takes HTTP traffic and must listen on the port in the PORT variable, `worker` for background jobs, and `release` for tasks that run before each new release goes live, such as database migrations. If a release command fails, the new release isn't deployed.
Config Vars, Add-ons & Environment Management
Config vars are environment variables for settings and secrets, so the same code runs in every environment. Changing a config var restarts the app with the new value. Add-ons are managed services such as Heroku Postgres, Key-Value Store, logging or monitoring tools. When you add one, it sets config vars like DATABASE_URL for you. Use separate apps for staging and production, grouped in a pipeline, each with its own config vars and add-ons.
Heroku Connect & Salesforce Integration
Heroku Connect syncs Salesforce objects with tables in Heroku Postgres. You choose the objects and fields to map. Read-only mappings copy Salesforce changes into Postgres. Read-write mappings also send Postgres changes back to Salesforce. This lets a Heroku app read and write Salesforce data with plain SQL, without using API calls in the app. Sync isn't instant, so apps must allow a short delay. For direct, real-time work, a Heroku app can also call the Salesforce REST API using OAuth.
Async Jobs, Workers & Message Queues
Web requests that take longer than 30 seconds are cut off by the router, so slow work belongs on a worker dyno. The web dyno puts a job on a queue, often in Heroku Key-Value Store, and the worker picks it up. Scheduled tasks can run with Heroku Scheduler, which starts a one-off dyno at set times. For high-volume event streams between services, Apache Kafka on Heroku is an option. Workers should be safe to retry, because a dyno restart can stop a job halfway.
Monitoring, Logging & Performance
Heroku collects logs from the router, dynos and add-ons into one stream, called Logplex. View them with `heroku logs --tail`, or send them to an outside tool with a log drain. Error codes tell you what went wrong: for example, H10 means the app crashed and H12 means a request timed out. Metrics show response time, memory and load. Scale horizontally by adding dynos, or vertically with bigger dyno types. Memory errors (R14) usually mean the dyno type is too small or the app is leaking memory.
Salesforce Certified Heroku Developer Accredited Professional Practice Questions (With Explanations)
Test your knowledge with these 15 sample questions.
Question 1: Database migrations must run each time a new version is deployed, before the new code takes traffic. Where should the migration command go?
Key takeaway: The release process runs after the build and before the new release goes live.
Show correct answer and explanation
Correct answer: A. The release process type
The release process runs after the build and before the new release goes live. If it fails, the release is stopped.
- A worker isn't tied to the release timing.
- A README doesn't run anything.
- Running migrations in the web process can cause errors while dynos start.
Question 2: A web process starts but Heroku reports error H10, and the app crashes on boot. The app listens on port 3000. What is the likely cause?
Key takeaway: Heroku assigns the port at run time through the PORT variable.
Show correct answer and explanation
Correct answer: B. The app must listen on the PORT variable
Heroku assigns the port at run time through the PORT variable. An app that listens on a fixed port can't receive traffic.
- A full database causes different errors.
- Dyno size doesn't affect which port the app uses.
- Buildpack version isn't the issue here.
Question 3: Where should an app's API keys and database URL be stored on Heroku?
Key takeaway: Config vars keep settings and secrets out of the code, and each app or environment has its own values.
Show correct answer and explanation
Correct answer: D. In config vars
Config vars keep settings and secrets out of the code, and each app or environment has its own values.
- A public folder can be downloaded by anyone.
- The Procfile lists commands, not secrets.
- Secrets in code end up in Git history.
Question 4: A request that sends 5,000 emails takes over a minute, and users see H12 timeout errors. What should the developer do?
Key takeaway: The router stops requests after 30 seconds.
Show correct answer and explanation
Correct answer: D. Queue the job and use a worker dyno
The router stops requests after 30 seconds. Long jobs should run on a worker dyno in the background.
- A larger dyno may still take more than 30 seconds.
- The router timeout can't be raised.
- The router cuts the request no matter how long users wait.
Question 5: A Heroku app needs to read Salesforce Contact data with fast SQL queries, without using Salesforce API calls on every request. What should be used?
Key takeaway: Heroku Connect copies Salesforce records into Postgres, so the app can query them with SQL.
Show correct answer and explanation
Correct answer: B. Heroku Connect, read-only on Contact
Heroku Connect copies Salesforce records into Postgres, so the app can query them with SQL.
- API calls on every request are slower and use up limits.
- Config vars are for settings, not records.
- A weekly file goes out of date.
Question 6: Users update their contact details in a Heroku app, and the changes must flow back to Salesforce. What mapping type is needed?
Key takeaway: Read-write mappings send changes made in Postgres back to Salesforce.
Show correct answer and explanation
Correct answer: C. A read-write Connect mapping
Read-write mappings send changes made in Postgres back to Salesforce.
- Log drains send logs, not data.
- Followers are read copies of a database.
- Read-only mappings only copy data from Salesforce.
Question 7: A cleanup task must run every night at 2 a.m. What is the simplest option?
Key takeaway: Heroku Scheduler starts a one-off dyno on a schedule to run the task.
Show correct answer and explanation
Correct answer: C. Heroku Scheduler running a one-off dyno
Heroku Scheduler starts a one-off dyno on a schedule to run the task.
- Release phase runs only on deploys.
- Manual work is easy to forget.
- A sleeping web dyno is wasteful and restarts can lose the timer.
Question 8: The team wants all app logs sent to an outside logging service for search and alerts. What should they set up?
Key takeaway: Log drains forward the app's log stream to an outside service.
Show correct answer and explanation
Correct answer: A. A log drain
Log drains forward the app's log stream to an outside service.
- Review apps are for testing pull requests.
- Followers copy database data.
- Dyno size doesn't affect where logs go.
Question 9: Metrics show frequent R14 errors on a web dyno. What do they mean?
Key takeaway: R14 means memory quota exceeded.
Show correct answer and explanation
Correct answer: B. The dyno has exceeded its memory limit
R14 means memory quota exceeded. The fix is to reduce memory use or move to a larger dyno type.
- A boot crash is H10.
- Database problems show different errors.
- A request timeout is H12.
Question 10: After adding Heroku Postgres to an app, how does the app find the database?
Key takeaway: Add-ons set config vars automatically.
Show correct answer and explanation
Correct answer: B. The add-on sets the DATABASE_URL config var
Add-ons set config vars automatically. The app reads DATABASE_URL to connect.
- Typing secrets into code is unsafe and unnecessary.
- Apps don't need to search for the database.
- Heroku doesn't send connection details by email.
Question 11: A tested build in staging should go to production exactly as it is. How should it be done?
Key takeaway: Promotion copies the same slug to production, so what was tested is what goes live.
Show correct answer and explanation
Correct answer: A. Promote it through the pipeline
Promotion copies the same slug to production, so what was tested is what goes live.
- Pushing again creates a new build that might differ.
- A new buildpack produces a different build.
- Heroku doesn't deploy by FTP.
Question 12: A background worker is restarted halfway through a job. What should the developer design for?
Key takeaway: Dynos restart regularly, so jobs should be safe to run again, for example by checking whether the work is already done.
Show correct answer and explanation
Correct answer: C. Jobs that can be retried without duplicate effects
Dynos restart regularly, so jobs should be safe to run again, for example by checking whether the work is already done.
- No job can be guaranteed to finish without interruption.
- Web dynos have the 30-second limit and the same restarts.
- You can't turn off the daily restart.
Question 13: A Heroku app needs to create Salesforce Cases in real time when a user submits a form. Heroku Connect isn't set up. What should it do?
Key takeaway: The REST API lets the app create records straight away, using an OAuth token for access.
Show correct answer and explanation
Correct answer: D. Call the Salesforce REST API using OAuth
The REST API lets the app create records straight away, using an OAuth token for access.
- Chatter posts aren't Cases.
- A local file is lost on restart and isn't an integration.
- A nightly batch isn't real time.
Question 14: Traffic doubles during a sale and response times rise. The app is stateless. What is the quickest fix?
Key takeaway: Stateless apps scale out easily: more web dynos share the extra traffic.
Show correct answer and explanation
Correct answer: C. Add more web dynos
Stateless apps scale out easily: more web dynos share the extra traffic.
- Logging has little effect on response time.
- Removing the database breaks the app.
- Restarts don't add capacity.
Question 15: The team wants a temporary app created for every GitHub pull request so reviewers can test it. What should they use?
Key takeaway: Review apps create a short-lived app per pull request and remove it when the pull request closes.
Show correct answer and explanation
Correct answer: A. Review apps in the pipeline
Review apps create a short-lived app per pull request and remove it when the pull request closes.
- Scheduler runs tasks on a timer.
- One-off dynos run single commands.
- A second production app isn't tied to pull requests.
Salesforce Certified Heroku Developer Accredited Professional Exam FAQs
- What is covered on the Salesforce Certified Heroku Developer Accredited Professional exam?
- This page shows the section-wise exam weightage so you know exactly which topics carry the most weight. Use the exam topics and practice questions above to align your study with the official outline.
- What is Heroku Developer Accredited Professional?
- Heroku Developer AP validates skills in developing and deploying applications on Heroku, including dyno management, add-ons, buildpacks, and deployment strategies.
- What programming experience do I need for Heroku Developer AP?
- You need programming experience (Ruby, Node.js, Python, Java, etc.) and understanding of cloud application development. Heroku supports multiple languages.
- Are there free practice questions for the Salesforce Certified Heroku Developer Accredited Professional exam?
- Yes. This page includes free sample practice questions with explanations. Use them alongside the current official documentation.
- How do I prepare for the Salesforce Certified Heroku Developer Accredited Professional certification?
- Use the exam tips, prerequisites, and study strategy on this page. Focus first on the highest-weighted sections, then take the sample practice questions. Schedule the exam when you consistently score well on practice tests.
Next Certifications After This AP
Good next steps after Heroku Developer:
TL;DR: What Heroku Developer AP Tests
- Application deployment and management: Deploying apps to Heroku via Git push, buildpacks (automatic detection of language and runtime), Procfile for defining process types, config vars for environment configuration, Heroku Pipelines for staging/production promotion workflows, and Review Apps for pull request preview environments.
- Dynos and scaling: Dyno types (eco, basic, standard-1x, standard-2x, performance-M, performance-L), web dynos (handle HTTP requests), worker dynos (background jobs), one-off dynos (ad-hoc commands), dyno sleeping for eco/basic tier, horizontal scaling (more dynos), vertical scaling (larger dyno type), and autoscaling configuration.
- Heroku Connect and Salesforce integration: Configuring Heroku Connect to sync Salesforce objects to Heroku Postgres, setting up field mappings and sync direction, handling polling interval and event-driven sync, conflict resolution strategies, and building Heroku applications that read and write Salesforce data via the synced Postgres database.
Which Sections Carry the Most Weight
AP format: 60 questions, 90 minutes, Pass/Fail, $150. Dyno types and Heroku Connect are the most distinctively Heroku topics, prioritise these over general web development knowledge.
Scenario Strategy: How to Approach Heroku Developer AP Questions
Questions describe a Heroku deployment or integration scenario and ask which Heroku feature, command, or configuration achieves it. Think in terms of Heroku’s container model, every app component runs in ephemeral dynos.
- For dyno type questions: web dynos respond to HTTP requests; they are the only dyno type that receives web traffic. Worker dynos run background jobs (processing a queue, sending emails). One-off dynos run a single command and exit (database migration, admin task). When a scenario says ’run a database migration during deployment’. Use a one-off dyno (heroku run), not a web dyno or worker dyno.
- For Heroku Connect questions: Heroku Connect sync direction options are: (1) Salesforce to Heroku only (read-only mirror), (2) Heroku to Salesforce only (Heroku app writes to Salesforce), (3) Bidirectional (both can update, conflicts resolved by timestamp). When a scenario says ’a Heroku app needs to update customer records in Salesforce in real time’, configure a bidirectional or Heroku-to-Salesforce sync, not a read-only connection.
- For scaling questions: horizontal scaling (adding more web dynos) handles more concurrent users. Vertical scaling (using a larger dyno type) handles more memory-intensive workloads. Autoscaling automatically adds web dynos when response time increases above a threshold. When a scenario says ’the app slows down during peak traffic hours due to memory exhaustion’, vertical scaling (larger dyno) is more appropriate than horizontal scaling (more small dynos).
AP Readiness Check
Pass 3 timed 40-question mocks before booking (Pass/Fail scoring)
Heroku Developer AP requires hands-on Heroku experience, deploy a real application, configure Heroku Connect to sync Salesforce data, and experiment with dyno scaling before booking. A free Heroku account provides sufficient access to practice all core exam concepts. The Heroku Dev Center is the primary reference documentation.
3 Concepts That Fail Most Heroku Developer Candidates
These are not the hardest topics; they are the ones where candidates are most confidently wrong. Learn the distinction early.
1. Ephemeral Filesystem: Files Written to Dyno Are Lost on Restart
Heroku dynos have an ephemeral filesystem: any file written during a dyno session is lost when the dyno restarts (which happens at least daily). Candidates design apps that write user uploads or generated files to the local filesystem, the exam expects external storage (AWS S3, Heroku Postgres) for persistent files.
2. Config Vars vs .env: Environment Variables Are Not in Code
Config Vars are Heroku’s secure environment variable store, set via the dashboard or CLI and injected at runtime. They should never be hardcoded in application code or checked into version control. Candidates put API keys in .env files and push them to Git, the exam expects Config Vars for all secrets and environment-specific settings.
3. Release Phase: Run Migrations Before New Code Goes Live
The Release Phase is a Heroku feature that runs a command (e.g., a database migration script) after a new slug is built but before it is deployed to dynos. If the release phase command fails, the deployment is rolled back automatically. Candidates run migrations manually after deployment, the exam expects Release Phase configuration for zero-downtime database migrations.
Questions Candidates Ask
- How hard is the Heroku Developer ap exam?
- The Heroku Developer ap is a Pass/Fail accredited professional exam (60 questions, 90 minutes, $150) designed for practitioners with hands-on implementation experience. It is considered moderately challenging for those who have configured Heroku Developer ap on real customer projects. Candidates without hands-on experience often find the specialised data model and feature configuration scenarios harder than expected. Most experienced practitioners pass with 3–4 weeks of focused review using the official Salesforce Trailmix for this accreditation.
- What are the highest-weight Heroku Developer AP exam sections?
- Heroku Application Deployment (30%) and Dyno Management and Scaling (25%) together account for 55% of the exam. Deploying applications via Git, configuring dyno types (web, worker, one-off), horizontal and vertical scaling, understanding dyno sleeping behaviour for free/eco dynos, and managing config vars are the most tested areas.
- What is Heroku Connect and how does the exam test it?
- Heroku Connect is a Heroku add-on that synchronises data between a Heroku PostgreSQL database and a Salesforce org. It enables Heroku applications to read and write Salesforce data through a PostgreSQL database interface, without using Salesforce APIs directly. The exam tests how to configure Heroku Connect mappings, set sync direction (Salesforce to Heroku, Heroku to Salesforce, or bidirectional), and handle conflict resolution.
- What Heroku add-ons are commonly tested in the Developer AP exam?
- The exam commonly tests Heroku Postgres (managed PostgreSQL database), Heroku Redis (managed Redis cache), Heroku Data for Redis (additional cache and queue support), SendGrid (transactional email), Papertrail (log management), and New Relic (performance monitoring). Understanding how to provision add-ons, access credentials via config vars, and scale add-on plans is tested.
- What concepts do most Heroku Developer candidates get wrong?
- The most commonly misunderstood topics for the Heroku Developer exam are: (1) Ephemeral Filesystem: Files Written to Dyno Are Lost on Restart; (2) Config Vars vs .env: Environment Variables Are Not in Code; (3) Release Phase: Run Migrations Before New Code Goes Live. Candidates are most confidently wrong on these. Learn the distinctions early to avoid losing marks on questions you expect to get right.
- Why do most Heroku Developer Ap candidates fail questions about Ephemeral Filesystem?
- Heroku dynos have an ephemeral filesystem: any file written during a dyno session is lost when the dyno restarts (which happens at least daily). Candidates design apps that write user uploads or generated files to the local filesystem, the exam expects external storage (AWS S3, Heroku Postgres) for persistent files.
- Why do most Heroku Developer Ap candidates fail questions about Config Vars vs .env?
- Config Vars are Heroku's secure environment variable store, set via the dashboard or CLI and injected at runtime. They should never be hardcoded in application code or checked into version control. Candidates put API keys in .env files and push them to Git, the exam expects Config Vars for all secrets and environment-specific settings.
- Why do most Heroku Developer Ap candidates fail questions about Release Phase?
- The Release Phase is a Heroku feature that runs a command (e.g., a database migration script) after a new slug is built but before it is deployed to dynos. If the release phase command fails, the deployment is rolled back automatically. Candidates run migrations manually after deployment, the exam expects Release Phase configuration for zero-downtime database migrations.
Related Study Resources
Start Heroku Developer AP Prep
After this exam, consider Sales Cloud Consultant or Service Cloud Consultant next.
Share or cite this study guide
Free to link from a forum post, study repo or article. Copy the Markdown and paste it anywhere.