I added the DKIM record two days ago and the Admin console still tells me to update my DNS records. What did I break?
Two different things produce this. Google's documentation says the message can persist for up to 48 hours after a correct record is added, so the console is often simply stale. The other cause is skipping the last click: generating the key and publishing the TXT record does nothing on its own, and the status only changes to Authenticating email with DKIM after you return to Authenticate email, click Start authentication, and Google verifies the record.
The fix
Check the published record directly with the Google Admin Toolbox Dig tool at google._domainkey.yourdomain.com instead of trusting the console. Then send a message to an outside address and read the Authentication-Results header: DKIM=pass with d= set to your own domain means the job is done whatever the banner says. If the record is correct and Start authentication has been clicked, wait out the 48 hours.
My registrar will not accept the DKIM value. It keeps telling me the record is too long.
A 2048 bit public key is longer than the 255 character maximum for a single DNS character string, so the key has to be stored as several quoted strings inside one TXT record. Some control panels split it for you, some refuse the input outright, and some accept it and silently truncate, which is the worst case: the record exists, looks right in the panel, and never validates.
The fix
Split the key into multiple text strings yourself, each wrapped in its own quotes within the same TXT record, which is exactly what Google's DKIM troubleshooting page instructs. Then verify with Dig that what comes back matches the Admin console value character for character. If your provider truly cannot store it, regenerate the key at 1024 bits, which Google offers for hosts that do not support 2048 bit keys.
Our app is supposed to send invoices as billing@ourdomain.com but everything arrives from the admin account we set it up with.
The app is authenticating to smtp.gmail.com with one user's address and an app password. Google documents that on this path the From address must match the authenticated account, so any other From is replaced. The mail is authenticated and delivered, it just is not from the address customers expect, and replies land in the wrong mailbox.
The fix
Move the app to the SMTP relay. In the Admin console go to Apps > Google Workspace > Gmail > Routing, configure the SMTP relay service, and set Allowed senders to Only addresses in my domains so the app can send as billing@. Point the app at smtp-relay.gmail.com on port 587 with TLS, and authenticate with Require SMTP Authentication or the Only accept mail from the specified IP addresses option. Note that Google's two pages state the relay ceiling differently, one as 10,000 messages per user in a 24 hour period and the other as 10,000 recipients per user per day, so size your batches against the lower reading.
Gmail cut us off for a day and said we reached a sending limit. We had barely sent 600 emails.
The cap that stopped you was probably not the message count. A paid Workspace account gets 2,000 messages a day, but only 3,000 external recipients and 2,000 unique external recipients, and messages sent through SMTP, POP or IMAP are limited to 100 recipients each. A 600 message run that includes distribution lists blows through the recipient counters long before the message counter. Limits run over a rolling 24 hour period, not a calendar day, so nothing resets at midnight.
The fix
Count recipients, not sends, and check which counter you hit before changing anything. If the volume is real and recurring, move it off the mailbox: the SMTP relay allows 10,000 messages per user in 24 hours, and genuine marketing belongs on a platform built for it. On a trial, expect 500 messages and 500 unique recipients a day until the domain has paid $100 USD or the equivalent, and note that Google says the increase can take up to 75 days after that threshold to apply.
DKIM is set up in Google Workspace but our newsletter still fails DMARC.
The Workspace key only signs mail that leaves Google's servers. A newsletter sent from a marketing platform never touches that key, so it needs its own DKIM record published for your domain on the selector that platform gives you. Google's DMARC troubleshooting page sends you to the third party's documentation for precisely this case. The same applies to help desks, e-commerce receipts, CRM notifications and anything else sending as your domain.
The fix
Inventory every system that sends as your domain, then authenticate each one: publish the platform's DKIM record on its own selector, and fold its SPF mechanism into your single SPF record. Use the DMARC aggregate reports at your rua address to find the senders you forgot, since that is what those reports are for. Then send a test message through each source to a seed address so you can read the d= domain per system instead of guessing.