{"id":279033,"date":"2026-05-29T10:53:15","date_gmt":"2026-05-29T08:53:15","guid":{"rendered":"https:\/\/www.unipile.com\/?p=279033"},"modified":"2026-06-03T13:34:19","modified_gmt":"2026-06-03T11:34:19","slug":"google-oauth-gmail-api-fouten","status":"publish","type":"post","link":"https:\/\/www.unipile.com\/nl\/google-oauth-gmail-api-errors\/","title":{"rendered":"Veelvoorkomende Google OAuth &amp; Gmail API-fouten (en hoe u ze kunt oplossen)"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; sticky_enabled=&#8221;0&#8243;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   UNIPILE TOC  -  OAuth Errors article  -  Divi-safe<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->#unipile-toc,<!-- [et_pb_line_break_holder] -->#unipile-toc *,<!-- [et_pb_line_break_holder] -->#unipile-toc *::before,<!-- [et_pb_line_break_holder] -->#unipile-toc *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  padding: 32px !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 2px 12px rgba(15, 39, 54, 0.04) !important;<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-header {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 24px !important;<!-- [et_pb_line_break_holder] -->  padding-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-header-left {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-icon-box {<!-- [et_pb_line_break_holder] -->  width: 36px !important;<!-- [et_pb_line_break_holder] -->  height: 36px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-icon-box svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-toggle {<!-- [et_pb_line_break_holder] -->  display: none !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 10px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  transition: background 0.2s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-toggle svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc:not(.utc-expanded) .utc-toggle svg {<!-- [et_pb_line_break_holder] -->  transform: rotate(-90deg) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: repeat(4, 1fr) !important;<!-- [et_pb_line_break_holder] -->  gap: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-col {<!-- [et_pb_line_break_holder] -->  padding: 0 24px !important;<!-- [et_pb_line_break_holder] -->  border-left: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-col:first-child {<!-- [et_pb_line_break_holder] -->  padding-left: 0 !important;<!-- [et_pb_line_break_holder] -->  border-left: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-col:last-child {<!-- [et_pb_line_break_holder] -->  padding-right: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-col-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.8px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link-list {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-num {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  font-size: 10px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-num.utc-num-faq {<!-- [et_pb_line_break_holder] -->  font-size: 8px !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link-text {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 500 !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.45 !important;<!-- [et_pb_line_break_holder] -->  transition: color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link:hover .utc-num {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.15) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link:hover .utc-link-text {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link.utc-active .utc-num {<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link.utc-active .utc-link-text {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link.utc-read .utc-num {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.15) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-tag-best {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  font-size: 9px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-left: 6px !important;<!-- [et_pb_line_break_holder] -->  vertical-align: middle !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 1000px) {<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: repeat(2, 1fr) !important;<!-- [et_pb_line_break_holder] -->    gap: 24px 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col {<!-- [et_pb_line_break_holder] -->    padding: 0 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col:nth-child(2n+1) {<!-- [et_pb_line_break_holder] -->    padding-left: 0 !important;<!-- [et_pb_line_break_holder] -->    border-left: none !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col:nth-child(2n) {<!-- [et_pb_line_break_holder] -->    padding-right: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-card {<!-- [et_pb_line_break_holder] -->    padding: 22px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-header {<!-- [et_pb_line_break_holder] -->    margin-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->    padding-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->    border-bottom: none !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-toggle {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->    gap: 22px !important;<!-- [et_pb_line_break_holder] -->    overflow: hidden !important;<!-- [et_pb_line_break_holder] -->    transition: max-height 0.4s ease, margin-top 0.3s ease, padding-top 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* === COLLAPSED PAR DEFAUT EN CSS sur mobile (avant meme le JS) === *\/<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-grid {<!-- [et_pb_line_break_holder] -->    max-height: 0 !important;<!-- [et_pb_line_break_holder] -->    margin-top: 0 !important;<!-- [et_pb_line_break_holder] -->    padding-top: 0 !important;<!-- [et_pb_line_break_holder] -->    border-top: none !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* Si le JS a tourne et l'utilisateur ouvre, cette classe re-affiche *\/<!-- [et_pb_line_break_holder] -->  #unipile-toc.utc-expanded .utc-grid {<!-- [et_pb_line_break_holder] -->    max-height: 2000px !important;<!-- [et_pb_line_break_holder] -->    margin-top: 22px !important;<!-- [et_pb_line_break_holder] -->    padding-top: 22px !important;<!-- [et_pb_line_break_holder] -->    border-top: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col {<!-- [et_pb_line_break_holder] -->    padding: 0 !important;<!-- [et_pb_line_break_holder] -->    border-left: none !important;<!-- [et_pb_line_break_holder] -->    border-top: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->    padding-top: 18px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col:first-child {<!-- [et_pb_line_break_holder] -->    border-top: none !important;<!-- [et_pb_line_break_holder] -->    padding-top: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-toc\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"utc-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"utc-header\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-header-left\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-icon-box\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><!-- [et_pb_line_break_holder] -->            <line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><!-- [et_pb_line_break_holder] -->          <\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"utc-title\">Table of Contents<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <button type=\"button\" class=\"utc-toggle\" aria-label=\"Toggle table of contents\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-toggle-label\">Show<\/span><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"utc-grid\"><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 1 -- Quick Ref + Errors 1-2 --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">OVERVIEW<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#oauth-errors-quick-ref\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">01<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Quick reference: all 7 errors<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#oauth-error-redirect-uri\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">02<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Error 400: redirect_uri_mismatch<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#oauth-error-admin-policy\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">03<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Error 400: admin_policy_enforced<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 2 -- Errors 4-6 --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">ERRORS<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#oauth-error-access-denied\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">04<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">access_denied: unverified app blocked<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#oauth-error-invalid-grant\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">05<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">invalid_grant: reconnect your account<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#oauth-error-consent-screen\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">06<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">OAuth consent screen not showing<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 3 -- Errors 7-8 + Avoid --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">MORE ERRORS<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#oauth-error-invalid-scope\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">07<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">invalid_scope<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#oauth-error-100-user-cap\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">08<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Google hasn&#8217;t verified this app + 100-user cap<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#oauth-errors-avoid\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">09<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">How to avoid this entire class of errors<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 4 -- FAQ --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">SUPPORT<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#diy-vs-unipile\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">10<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Managed OAuth option<span class=\"utc-tag-best\">Best<\/span><\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#faq-goerr\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num utc-num-faq\">FAQ<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Frequently Asked Questions<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  var toc = document.getElementById('unipile-toc');<!-- [et_pb_line_break_holder] -->  if (!toc) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var MOBILE_BP = 700;<!-- [et_pb_line_break_holder] -->  var toggleBtn = toc.querySelector('.utc-toggle');<!-- [et_pb_line_break_holder] -->  var toggleLabel = toc.querySelector('.utc-toggle-label');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function syncInitial(){<!-- [et_pb_line_break_holder] -->    if (window.innerWidth <= MOBILE_BP) {<!-- [et_pb_line_break_holder] -->      toc.classList.remove('utc-expanded');<!-- [et_pb_line_break_holder] -->      if (toggleLabel) toggleLabel.textContent = 'Show';<!-- [et_pb_line_break_holder] -->    } else {<!-- [et_pb_line_break_holder] -->      toc.classList.add('utc-expanded');<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  syncInitial();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (toggleBtn) {<!-- [et_pb_line_break_holder] -->    toggleBtn.addEventListener('click', function(){<!-- [et_pb_line_break_holder] -->      var isOpen = toc.classList.toggle('utc-expanded');<!-- [et_pb_line_break_holder] -->      if (toggleLabel) toggleLabel.textContent = isOpen ? 'Hide' : 'Show';<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var resizeTimer = null;<!-- [et_pb_line_break_holder] -->  window.addEventListener('resize', function(){<!-- [et_pb_line_break_holder] -->    if (resizeTimer) clearTimeout(resizeTimer);<!-- [et_pb_line_break_holder] -->    resizeTimer = setTimeout(syncInitial, 150);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var links = toc.querySelectorAll('.utc-link');<!-- [et_pb_line_break_holder] -->  links.forEach(function(link){<!-- [et_pb_line_break_holder] -->    link.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      var href = link.getAttribute('href');<!-- [et_pb_line_break_holder] -->      if (!href || href.charAt(0) !== '#') return;<!-- [et_pb_line_break_holder] -->      var target = document.getElementById(href.substring(1));<!-- [et_pb_line_break_holder] -->      if (target) {<!-- [et_pb_line_break_holder] -->        e.preventDefault();<!-- [et_pb_line_break_holder] -->        var offset = 80;<!-- [et_pb_line_break_holder] -->        var top = target.getBoundingClientRect().top + window.pageYOffset - offset;<!-- [et_pb_line_break_holder] -->        window.scrollTo({ top: top, behavior: 'smooth' });<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var sectionIds = [];<!-- [et_pb_line_break_holder] -->  links.forEach(function(link){<!-- [et_pb_line_break_holder] -->    var href = link.getAttribute('href');<!-- [et_pb_line_break_holder] -->    if (href && href.charAt(0) === '#') sectionIds.push(href.substring(1));<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function updateActive(){<!-- [et_pb_line_break_holder] -->    var scrollY = window.pageYOffset + 120;<!-- [et_pb_line_break_holder] -->    var activeId = null;<!-- [et_pb_line_break_holder] -->    var readIds = [];<!-- [et_pb_line_break_holder] -->    sectionIds.forEach(function(id){<!-- [et_pb_line_break_holder] -->      var el = document.getElementById(id);<!-- [et_pb_line_break_holder] -->      if (el) {<!-- [et_pb_line_break_holder] -->        var top = el.getBoundingClientRect().top + window.pageYOffset;<!-- [et_pb_line_break_holder] -->        if (top <= scrollY) {<!-- [et_pb_line_break_holder] -->          activeId = id;<!-- [et_pb_line_break_holder] -->          readIds.push(id);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    links.forEach(function(link){<!-- [et_pb_line_break_holder] -->      var href = link.getAttribute('href');<!-- [et_pb_line_break_holder] -->      var id = href ? href.substring(1) : '';<!-- [et_pb_line_break_holder] -->      link.classList.remove('utc-active', 'utc-read');<!-- [et_pb_line_break_holder] -->      if (id === activeId) {<!-- [et_pb_line_break_holder] -->        link.classList.add('utc-active');<!-- [et_pb_line_break_holder] -->      } else if (readIds.indexOf(id) !== -1) {<!-- [et_pb_line_break_holder] -->        link.classList.add('utc-read');<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if ('IntersectionObserver' in window) {<!-- [et_pb_line_break_holder] -->    var observer = new IntersectionObserver(function(){<!-- [et_pb_line_break_holder] -->      updateActive();<!-- [et_pb_line_break_holder] -->    }, { rootMargin: '-120px 0px -60% 0px' });<!-- [et_pb_line_break_holder] -->    sectionIds.forEach(function(id){<!-- [et_pb_line_break_holder] -->      var el = document.getElementById(id);<!-- [et_pb_line_break_holder] -->      if (el) observer.observe(el);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  window.addEventListener('scroll', updateActive, { passive: true });<!-- [et_pb_line_break_holder] -->  updateActive();<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-hero,<!-- [et_pb_line_break_holder] -->#upl-goerr-hero *,<!-- [et_pb_line_break_holder] -->#upl-goerr-hero *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-hero *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 24px 70px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 60px !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-h1 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 44px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.18 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-desc {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-cta-group {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-cta-primary {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.25s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-cta-primary:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-cta-primary svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-code-col {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-code-wrapper {<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-editor-bar {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 18px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid rgba(255,255,255,0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-dot {<!-- [et_pb_line_break_holder] -->  width: 12px !important;<!-- [et_pb_line_break_holder] -->  height: 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-dot-r { background: #ff5f57 !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-dot-y { background: #febc2e !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-dot-g { background: #28c840 !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-filename {<!-- [et_pb_line_break_holder] -->  color: #8b949e !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  margin-left: 6px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-pre {<!-- [et_pb_line_break_holder] -->  padding: 22px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  white-space: pre !important;<!-- [et_pb_line_break_holder] -->  word-break: normal !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-pre code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: pre !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-editor-error {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.08) !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid rgba(234, 67, 53, 0.2) !important;<!-- [et_pb_line_break_holder] -->  color: #f87171 !important;<!-- [et_pb_line_break_holder] -->  padding: 11px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-error-pills {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-hero .gh-error-pill {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.08) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(234, 67, 53, 0.2) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 12px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-hero { padding: 60px 20px 50px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-hero .gh-container { grid-template-columns: 1fr !important; gap: 40px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-hero .gh-h1 { font-size: 34px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-hero { padding: 50px 16px 40px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-hero .gh-h1 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-hero .gh-desc { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-hero .gh-cta-group { flex-direction: column !important; align-items: flex-start !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-hero .gh-cta-primary { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-hero .gh-h1 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-hero\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"gh-container\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gh-left\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gh-badge\"><span class=\"gh-badge-dot\"><\/span><span>Google OAuth Guide<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<h1 class=\"gh-h1\">Common Google OAuth &#038; Gmail API Errors (and How to Fix Each One)<\/h1>\n<p><!-- [et_pb_line_break_holder] -->      <pee class=\"gh-desc\">Every developer integrating Gmail or Google Calendar with Google OAuth will hit at least one of these google oauth errors. This guide consolidates all 7 common Google OAuth errors in one place &#8211; with the exact cause and the step-by-step fix for each one. Understanding these google oauth errors will save hours of debugging.<\/pee><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gh-cta-group\"><!-- [et_pb_line_break_holder] -->        <a class=\"gh-cta-primary\" href=\"https:\/\/developer.unipile.com\/docs\/getting-started\" target=\"_blank\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span>Read the integration docs<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gh-code-col\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gh-code-wrapper\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gh-editor-bar\"><!-- [et_pb_line_break_holder] -->          <span class=\"gh-dot gh-dot-r\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"gh-dot gh-dot-y\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"gh-dot gh-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"gh-filename\">oauth_callback.py<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gh-pre\"><code><span class=\"c\"># Google OAuth token exchange<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">import<\/span> <span class=\"w\">requests<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"w\">token_response<\/span> <span class=\"k\">=<\/span> <span class=\"fn\">requests.post<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"s\">\"https:\/\/oauth2.googleapis.com\/token\"<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">data={<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"s\">\"code\"<\/span><span class=\"w\">: authorization_code,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"s\">\"client_id\"<\/span><span class=\"w\">: CLIENT_ID,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"s\">\"client_secret\"<\/span><span class=\"w\">: CLIENT_SECRET,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"s\">\"redirect_uri\"<\/span><span class=\"w\">: REDIRECT_URI,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"s\">\"grant_type\"<\/span><span class=\"w\">:<\/span> <span class=\"s\">\"authorization_code\"<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">}<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">)<\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gh-editor-error\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" style=\"width:14px;height:14px;flex-shrink:0;\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span>error: redirect_uri_mismatch<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gh-error-pills\"><!-- [et_pb_line_break_holder] -->        <span class=\"gh-error-pill\"><span>redirect_uri_mismatch<\/span><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"gh-error-pill\"><span>invalid_grant<\/span><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"gh-error-pill\"><span>admin_policy_enforced<\/span><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"gh-error-pill\"><span>access_denied<\/span><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"gh-error-pill\"><span>invalid_scope<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  document.querySelectorAll('[data-upl-link]').forEach(function(el){<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      e.preventDefault();<!-- [et_pb_line_break_holder] -->      var href = el.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->      var target = el.getAttribute('data-upl-target') || '_blank';<!-- [et_pb_line_break_holder] -->      window.open(href, target);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-qref,<!-- [et_pb_line_break_holder] -->#upl-goerr-qref *,<!-- [et_pb_line_break_holder] -->#upl-goerr-qref *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-qref *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.18) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Desktop table *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-table-wrap {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref table {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  border-collapse: collapse !important;<!-- [et_pb_line_break_holder] -->  display: table !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref thead tr {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref thead th {<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.75) !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref tbody tr {<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f0f2f5 !important;<!-- [et_pb_line_break_holder] -->  transition: background 0.15s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref tbody tr:last-child {<!-- [et_pb_line_break_holder] -->  border-bottom: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref tbody tr:hover {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.04) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref tbody td {<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-error-code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.06) !important;<!-- [et_pb_line_break_holder] -->  padding: 3px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 5px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-stage-pill {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  padding: 3px 10px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-stage-auth {<!-- [et_pb_line_break_holder] -->  background: rgba(66, 133, 244, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #1d4ed8 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-stage-token {<!-- [et_pb_line_break_holder] -->  background: rgba(251, 188, 4, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #92400e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-stage-admin {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-stage-console {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #065f46 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-anchor-link {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Mobile cards *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-mobile-cards {<!-- [et_pb_line_break_holder] -->  display: none !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-mcard {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 18px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-mcard-header {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-mcard-row {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-mcard-row:last-child {<!-- [et_pb_line_break_holder] -->  margin-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-qref .qr-mcard-label {<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 3px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 768px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-qref { padding: 60px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-qref .qr-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-qref .qr-table-wrap { display: none !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-qref .qr-mobile-cards { display: flex !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-qref .qr-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-qref .qr-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-qref .qr-h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-qref\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"qr-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"oauth-errors-quick-ref\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"qr-badge\"><span class=\"qr-badge-dot\"><\/span><span>Quick Reference<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"qr-h2\">Quick reference: every Google OAuth error at a glance<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"qr-intro\">A single-table summary of all 7 google oauth errors covered in this guide &#8211; stage where it occurs, root cause, and the quick fix link to the detailed section below. Bookmark this table as a reference when debugging google oauth errors in development or production.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Desktop table --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"qr-table-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<table><!-- [et_pb_line_break_holder] -->        <\/p>\n<thead><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Error message<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Stage<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Root cause<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Quick fix<\/th>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/thead>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tbody><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-error-code\">redirect_uri_mismatch<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-stage-pill qr-stage-auth\">Authorization<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>The redirect URI in your request does not exactly match one registered in Google Cloud Console<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><a class=\"qr-anchor-link\" href=\"#oauth-error-redirect-uri\">Fix it<\/a><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-error-code\">admin_policy_enforced<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-stage-pill qr-stage-admin\">Authorization<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>A Workspace super admin has restricted which OAuth apps or scopes users in the org can grant access to<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><a class=\"qr-anchor-link\" href=\"#oauth-error-admin-policy\">Fix it<\/a><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-error-code\">access_denied<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-stage-pill qr-stage-auth\">Authorization<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>App is in Testing mode and the user is not a test user, or app requests restricted scopes without verification<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><a class=\"qr-anchor-link\" href=\"#oauth-error-access-denied\">Fix it<\/a><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-error-code\">invalid_grant<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-stage-pill qr-stage-token\">Token refresh<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Refresh token expired, revoked, or used more than once (single-use auth code)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><a class=\"qr-anchor-link\" href=\"#oauth-error-invalid-grant\">Fix it<\/a><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-error-code\">Consent screen missing<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-stage-pill qr-stage-console\">Google Cloud Console<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>New Google Cloud UI moved OAuth consent screen; also requires Owner\/Editor role on the project<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><a class=\"qr-anchor-link\" href=\"#oauth-error-consent-screen\">Fix it<\/a><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-error-code\">invalid_scope<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-stage-pill qr-stage-auth\">Authorization<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Scope URL typo or the corresponding Google API is not enabled in the project<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><a class=\"qr-anchor-link\" href=\"#oauth-error-invalid-scope\">Fix it<\/a><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-error-code\">Google hasn&#8217;t verified<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"qr-stage-pill qr-stage-auth\">Authorization<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>App uses sensitive\/restricted scopes but has not completed Google verification; Testing mode caps at 100 users<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><a class=\"qr-anchor-link\" href=\"#oauth-error-100-user-cap\">Fix it<\/a><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/tbody>\n<p><!-- [et_pb_line_break_holder] -->      <\/table>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Mobile cards --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"qr-mobile-cards\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"qr-mcard\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"qr-error-code\">redirect_uri_mismatch<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"qr-stage-pill qr-stage-auth\">Authorization<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><span class=\"qr-mcard-label\">Root cause<\/span>Redirect URI in request does not exactly match a registered URI in Google Cloud Console<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><a class=\"qr-anchor-link\" href=\"#oauth-error-redirect-uri\">See full fix<\/a><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"qr-mcard\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"qr-error-code\">admin_policy_enforced<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"qr-stage-pill qr-stage-admin\">Authorization<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><span class=\"qr-mcard-label\">Root cause<\/span>Workspace super admin blocked the app or scope for the organization<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><a class=\"qr-anchor-link\" href=\"#oauth-error-admin-policy\">See full fix<\/a><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"qr-mcard\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"qr-error-code\">access_denied<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"qr-stage-pill qr-stage-auth\">Authorization<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><span class=\"qr-mcard-label\">Root cause<\/span>App in Testing mode, user not added as test user, or restricted scopes without verification<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><a class=\"qr-anchor-link\" href=\"#oauth-error-access-denied\">See full fix<\/a><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"qr-mcard\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"qr-error-code\">invalid_grant<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"qr-stage-pill qr-stage-token\">Token refresh<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><span class=\"qr-mcard-label\">Root cause<\/span>Refresh token expired (6 months inactivity), revoked, or single-use auth code was reused<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><a class=\"qr-anchor-link\" href=\"#oauth-error-invalid-grant\">See full fix<\/a><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"qr-mcard\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"qr-error-code\">Consent screen missing<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"qr-stage-pill qr-stage-console\">Google Cloud Console<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><span class=\"qr-mcard-label\">Root cause<\/span>New Google Cloud UI moved OAuth consent screen to &#8220;OAuth Overview&#8221;<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><a class=\"qr-anchor-link\" href=\"#oauth-error-consent-screen\">See full fix<\/a><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"qr-mcard\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"qr-error-code\">invalid_scope<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"qr-stage-pill qr-stage-auth\">Authorization<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><span class=\"qr-mcard-label\">Root cause<\/span>Scope URL typo or API not enabled in the project<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><a class=\"qr-anchor-link\" href=\"#oauth-error-invalid-scope\">See full fix<\/a><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"qr-mcard\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"qr-error-code\">Google hasn&#8217;t verified<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"qr-stage-pill qr-stage-auth\">Authorization<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><span class=\"qr-mcard-label\">Root cause<\/span>Sensitive\/restricted scopes without verification; Testing mode 100-user cap<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"qr-mcard-row\"><a class=\"qr-anchor-link\" href=\"#oauth-error-100-user-cap\">See full fix<\/a><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-redir,<!-- [et_pb_line_break_holder] -->#upl-goerr-redir *,<!-- [et_pb_line_break_holder] -->#upl-goerr-redir *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-redir *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-error-block {<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-error-block code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13.5px !important;<!-- [et_pb_line_break_holder] -->  color: #f87171 !important;<!-- [et_pb_line_break_holder] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-p {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-cause-card {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.05) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(234, 67, 53, 0.2) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-cause-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-fix-card {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.05) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(59, 185, 139, 0.25) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-fix-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-steps {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-step {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-step-num {<!-- [et_pb_line_break_holder] -->  width: 26px !important;<!-- [et_pb_line_break_holder] -->  height: 26px !important;<!-- [et_pb_line_break_holder] -->  min-width: 26px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-step-text {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-step-text code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(0,0,0,0.06) !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 5px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-warn-card {<!-- [et_pb_line_break_holder] -->  background: rgba(251, 188, 4, 0.08) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(251, 188, 4, 0.3) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 22px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-warn-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #92400e !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-redir .rd-code-inline {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(0,0,0,0.06) !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 5px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-redir { padding: 60px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-redir .rd-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-redir { padding: 50px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-redir .rd-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-redir .rd-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-redir .rd-h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-redir\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"rd-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"oauth-error-redirect-uri\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"rd-badge\"><span>Error 400<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"rd-h2\">Error 400: redirect_uri_mismatch<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"rd-intro\">This is the most common Google OAuth error for developers setting up a new integration. It fires during the authorization step &#8211; before any token is issued.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"rd-h3\">The exact error message<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"rd-error-block\"><!-- [et_pb_line_break_holder] -->      <code>Error 400: redirect_uri_mismatch<!-- [et_pb_line_break_holder] -->The redirect URI in the request did not match a registered redirect URI.<!-- [et_pb_line_break_holder] -->error=redirect_uri_mismatch<\/code><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"rd-h3\">Cause<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"rd-cause-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"rd-cause-label\">Root cause<\/span><!-- [et_pb_line_break_holder] -->      <pee class=\"rd-p\" style=\"margin-bottom:0!important;\">Google compares the <code class=\"rd-code-inline\">redirect_uri<\/code> parameter you pass in your authorization URL with the list of Authorized redirect URIs registered in your OAuth client in Google Cloud Console. Even a single character difference &#8211; a trailing slash, <code class=\"rd-code-inline\">http<\/code> vs <code class=\"rd-code-inline\">https<\/code>, or a different port &#8211; triggers this error.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"rd-h3\">Fix (step by step)<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"rd-fix-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"rd-fix-label\">Steps to fix<\/span><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"rd-steps\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"rd-step-num\">1<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"rd-step-text\">Open <strong>Google Cloud Console<\/strong> &#8211; APIs &#038; Services &#8211; Credentials.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"rd-step-num\">2<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"rd-step-text\">Click on your OAuth 2.0 Client ID to edit it.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"rd-step-num\">3<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"rd-step-text\">Under <strong>Authorized redirect URIs<\/strong>, add the exact URI you are passing in your code &#8211; e.g. <code>https:\/\/yourapp.com\/oauth\/callback<\/code>. The value must be character-for-character identical, including scheme, port, and trailing slash.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"rd-step-num\">4<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"rd-step-text\">Click <strong>Save<\/strong>. Changes can take a few minutes to propagate.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"rd-step-num\">5<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"rd-step-text\">In your code, make sure the <code>redirect_uri<\/code> value you pass to the authorization endpoint and to the token exchange endpoint are identical.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"rd-h3\">redirect_uri_mismatch on localhost<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"rd-p\">During local development, register the exact localhost URI you use &#8211; for example <code class=\"rd-code-inline\">http:\/\/localhost:3000\/callback<\/code>. Google allows <code class=\"rd-code-inline\">http:\/\/<\/code> (not just <code class=\"rd-code-inline\">https:\/\/<\/code>) for localhost URIs. If you change your dev port, remember to update the registered URI.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"rd-warn-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"rd-warn-label\">Gotcha: Authorized JavaScript origins vs redirect URIs<\/span><!-- [et_pb_line_break_holder] -->      <pee class=\"rd-p\" style=\"margin-bottom:0!important;\"><strong>These are two separate fields and they serve different purposes.<\/strong> Authorized JavaScript origins are used for browser-side OAuth flows (implicit flow, Google Identity Services). Authorized redirect URIs are used for server-side authorization code flows. Adding a URI to JavaScript origins will NOT fix a <code class=\"rd-code-inline\">redirect_uri_mismatch<\/code> error &#8211; you must add it to the redirect URIs field. A Google OAuth client can have up to 100 redirect URIs registered.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-adm,<!-- [et_pb_line_break_holder] -->#upl-goerr-adm *,<!-- [et_pb_line_break_holder] -->#upl-goerr-adm *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-adm *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-error-block {<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-error-block code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13.5px !important;<!-- [et_pb_line_break_holder] -->  color: #f87171 !important;<!-- [et_pb_line_break_holder] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-p {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-cause-card {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.05) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(234, 67, 53, 0.2) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-cause-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-fix-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-fix-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-steps {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-step {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-step-num {<!-- [et_pb_line_break_holder] -->  width: 26px !important;<!-- [et_pb_line_break_holder] -->  height: 26px !important;<!-- [et_pb_line_break_holder] -->  min-width: 26px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-step-text {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-warn-card {<!-- [et_pb_line_break_holder] -->  background: rgba(251, 188, 4, 0.08) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(251, 188, 4, 0.3) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 22px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-adm .adm-warn-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #92400e !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-adm { padding: 60px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-adm .adm-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-adm { padding: 50px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-adm .adm-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-adm .adm-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-adm .adm-h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-adm\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"adm-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"oauth-error-admin-policy\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"adm-badge\"><span>Error 400 \/ Admin<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"adm-h2\">Error 400: admin_policy_enforced<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"adm-intro\">This error is not a bug in your code. It is an organizational policy enforced by a Google Workspace super administrator. A regular developer cannot fix it alone.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"adm-h3\">The exact error message<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"adm-error-block\"><!-- [et_pb_line_break_holder] -->      <code>Error 400: admin_policy_enforced<!-- [et_pb_line_break_holder] -->Google Account is unable to be used for authorization because of your<!-- [et_pb_line_break_holder] -->organization's policies. Contact your admin for more info.<!-- [et_pb_line_break_holder] -->error=admin_policy_enforced<\/code><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"adm-h3\">Cause<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"adm-cause-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"adm-cause-label\">Root cause<\/span><!-- [et_pb_line_break_holder] -->      <pee class=\"adm-p\" style=\"margin-bottom:8px!important;\">A Google Workspace super admin has restricted which third-party applications or OAuth scopes users in the organization can grant access to. This is configured via <strong>API Controls<\/strong> in the Google Admin Console. When an app is not on the approved list, every user in that Workspace will receive this error when they attempt to authorize it &#8211; regardless of the app&#8217;s verification status.<\/pee><!-- [et_pb_line_break_holder] -->      <pee class=\"adm-p\" style=\"margin-bottom:0!important;\">This is a <em>compliance and security control<\/em>, not a developer-side misconfiguration. The correct resolution is always admin-side.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"adm-h3\">Fix (admin-side only)<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"adm-fix-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"adm-fix-label\">Steps for the super admin<\/span><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"adm-steps\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"adm-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-num\">1<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-text\">Sign in to the <strong>Google Admin Console<\/strong> at <strong>admin.google.com<\/strong> with a super administrator account.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"adm-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-num\">2<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-text\">Navigate to <strong>Security &#8211; Access and data control &#8211; API controls<\/strong>.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"adm-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-num\">3<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-text\">Click <strong>Manage Third-Party App Access<\/strong>.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"adm-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-num\">4<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-text\">Search for the app by its OAuth Client ID or application name. Click on it.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"adm-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-num\">5<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-text\">Change the app&#8217;s access status from <strong>Blocked<\/strong> or <strong>Limited<\/strong> to <strong>Trusted<\/strong>. This allows the app to request the scopes it has declared.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"adm-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-num\">6<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"adm-step-text\">Click <strong>Change<\/strong> to confirm. Users in the org can now authorize the app.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"adm-warn-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"adm-warn-label\">Note: regular users cannot fix this<\/span><!-- [et_pb_line_break_holder] -->      <pee class=\"adm-p\" style=\"margin-bottom:0!important;\">A user who encounters <strong>admin_policy_enforced<\/strong> cannot resolve it themselves. They need to contact their Google Workspace super admin and request that the specific OAuth app be marked as Trusted. If the user is the admin, they can follow the steps above. If the domain enforces a strict &#8220;Allow specific apps&#8221; policy, the app must first be explicitly added to the approved list before it can be set to Trusted.<\/pee><!-- [et_pb_line_break_holder] -->      <pee style=\"margin-top:12px;\">If you are building internal tooling and want to avoid per-user OAuth consent entirely, a service account with Domain-Wide Delegation is the alternative &#8211; see our <a href=\"https:\/\/www.unipile.com\/gmail-api-service-account-domain-wide-delegation\/\" style=\"color:#3BB98B;text-decoration:underline;font-weight:600;\">Gmail service account &#038; DWD guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-acd,<!-- [et_pb_line_break_holder] -->#upl-goerr-acd *,<!-- [et_pb_line_break_holder] -->#upl-goerr-acd *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-acd *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-error-block {<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-error-block code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13.5px !important;<!-- [et_pb_line_break_holder] -->  color: #f87171 !important;<!-- [et_pb_line_break_holder] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-p {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-causes-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-cause-card {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.04) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(234, 67, 53, 0.18) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-cause-title {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-cause-desc {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-fix-card {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.05) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(59, 185, 139, 0.25) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-fix-title {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-steps {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-step {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-step-num {<!-- [et_pb_line_break_holder] -->  width: 26px !important;<!-- [et_pb_line_break_holder] -->  height: 26px !important;<!-- [et_pb_line_break_holder] -->  min-width: 26px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-step-text {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-acd .acd-link {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-acd { padding: 60px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-acd .acd-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-acd .acd-causes-grid { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-acd { padding: 50px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-acd .acd-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-acd .acd-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-acd .acd-h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-acd\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"acd-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"oauth-error-access-denied\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"acd-badge\"><span>access_denied<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"acd-h2\">access_denied &#038; &#8220;This app is blocked&#8221; (unverified app)<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"acd-intro\">Users see a &#8220;This app is blocked&#8221; screen or receive <strong>access_denied<\/strong> in the OAuth callback. This one has multiple root causes depending on whether your app is still in Testing mode or targeting restricted scopes.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"acd-h3\">The exact error message<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"acd-error-block\"><!-- [et_pb_line_break_holder] -->      <code>Access blocked: [Your App Name] has not completed the Google verification process<!-- [et_pb_line_break_holder] -->error=access_denied<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->-- or --<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->This app is blocked.<!-- [et_pb_line_break_holder] -->This app tried to access sensitive info in your Google Account.<!-- [et_pb_line_break_holder] -->Contact the developer for more info.<\/code><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"acd-h3\">Causes<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"acd-causes-grid\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"acd-cause-card\"><!-- [et_pb_line_break_holder] -->        <span class=\"acd-cause-title\">App in Testing mode + user not a test user<\/span><!-- [et_pb_line_break_holder] -->        <pee class=\"acd-cause-desc\">While your OAuth app is in &#8220;Testing&#8221; publishing status, only users explicitly added as test users can authorize it. Anyone else gets access_denied immediately.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"acd-cause-card\"><!-- [et_pb_line_break_holder] -->        <span class=\"acd-cause-title\">Testing mode 100-user cap reached<\/span><!-- [et_pb_line_break_holder] -->        <pee class=\"acd-cause-desc\">Testing mode is limited to 100 unique test users at any time. Once you hit 100, new users cannot authorize the app even if added.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"acd-cause-card\"><!-- [et_pb_line_break_holder] -->        <span class=\"acd-cause-title\">Sensitive or restricted scopes without verification<\/span><!-- [et_pb_line_break_holder] -->        <pee class=\"acd-cause-desc\">Scopes like <code style=\"font-family:Courier New,monospace;font-size:12px;background:rgba(0,0,0,0.06);padding:2px 4px;border-radius:3px;\">gmail.modify<\/code> or <code style=\"font-family:Courier New,monospace;font-size:12px;background:rgba(0,0,0,0.06);padding:2px 4px;border-radius:3px;\">gmail.send<\/code> are Sensitive scopes. Apps requesting them must complete Google&#8217;s app verification process before real users can grant access.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"acd-cause-card\"><!-- [et_pb_line_break_holder] -->        <span class=\"acd-cause-title\">Restricted scopes (most severe)<\/span><!-- [et_pb_line_break_holder] -->        <pee class=\"acd-cause-desc\">A small number of scopes (e.g. full Gmail access) are Restricted and require a third-party security audit (CASA) in addition to verification.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"acd-h3\">Fix<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"acd-fix-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"acd-fix-title\">For Testing mode &#8211; add test users<\/span><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"acd-steps\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"acd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-num\">1<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-text\">In Google Cloud Console, go to <strong>APIs &#038; Services &#8211; OAuth consent screen<\/strong>.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"acd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-num\">2<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-text\">Under <strong>Test users<\/strong>, click <strong>Add users<\/strong> and add the Gmail address of each user who needs access during testing.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"acd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-num\">3<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-text\">Save. That user can now authorize the app while it remains in Testing mode.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"acd-fix-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"acd-fix-title\">For Production &#8211; submit for verification + CASA if needed<\/span><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"acd-steps\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"acd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-num\">1<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-text\">Ensure your OAuth consent screen is fully filled out: app name, support email, homepage URL, privacy policy URL.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"acd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-num\">2<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-text\">On the OAuth consent screen page, click <strong>Publish App<\/strong> to move to Production, which triggers the verification review submission for sensitive scopes.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"acd-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-num\">3<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"acd-step-text\">For Restricted scopes, complete a CASA Tier 2 security assessment. See the <a class=\"acd-link\" href=\"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/\">full Google OAuth setup guide<\/a> for the verification and CASA workflow.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-invg,<!-- [et_pb_line_break_holder] -->#upl-goerr-invg *,<!-- [et_pb_line_break_holder] -->#upl-goerr-invg *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-invg *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-error-block {<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-error-block code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13.5px !important;<!-- [et_pb_line_break_holder] -->  color: #f87171 !important;<!-- [et_pb_line_break_holder] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-p {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-causes-list {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cause-item {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cause-icon {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  min-width: 20px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.1) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  margin-top: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cause-icon svg {<!-- [et_pb_line_break_holder] -->  width: 10px !important;<!-- [et_pb_line_break_holder] -->  height: 10px !important;<!-- [et_pb_line_break_holder] -->  stroke: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cause-text {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cause-text strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-code-wrapper {<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-editor-bar {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 18px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid rgba(255,255,255,0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-dot {<!-- [et_pb_line_break_holder] -->  width: 12px !important;<!-- [et_pb_line_break_holder] -->  height: 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-dot-r { background: #ff5f57 !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-dot-y { background: #febc2e !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-dot-g { background: #28c840 !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-filename {<!-- [et_pb_line_break_holder] -->  color: #8b949e !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  margin-left: 6px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-pre {<!-- [et_pb_line_break_holder] -->  padding: 22px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  white-space: pre !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-pre code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: pre !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  word-break: normal !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-editor-ok {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.1) !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid rgba(59, 185, 139, 0.25) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 11px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* CTA 1 - inline after invalid_grant *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cta-strip {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 28px 32px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 24px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cta-text-block {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  min-width: 220px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cta-label {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.5) !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cta-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cta-btn {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.25s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cta-btn:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-invg .ig-cta-btn svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-invg { padding: 60px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-invg .ig-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-invg .ig-cta-strip { flex-direction: column !important; align-items: flex-start !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-invg { padding: 50px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-invg .ig-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-invg .ig-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-invg .ig-cta-btn { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-invg .ig-h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-invg\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"ig-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"oauth-error-invalid-grant\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"ig-badge\"><span>invalid_grant<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"ig-h2\">invalid_grant: &#8220;reconnect your Gmail account&#8221;<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"ig-intro\">The <strong>gmail api invalid grant<\/strong> error is one of the most confusing in production &#8211; it breaks silently for a subset of users and requires a new OAuth flow to recover. Understanding the refresh token lifecycle is the key to handling it properly.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"ig-h3\">The exact error message<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"ig-error-block\"><!-- [et_pb_line_break_holder] -->      <code>{\"error\": \"invalid_grant\", \"error_description\": \"Token has been expired or revoked.\"}<!-- [et_pb_line_break_holder] -->-- or --<!-- [et_pb_line_break_holder] -->{\"error\": \"invalid_grant\", \"error_description\": \"Bad Request\"}<\/code><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"ig-h3\">Cause: the refresh token lifecycle<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"ig-causes-list\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"ig-cause-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"ig-cause-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"ig-cause-text\"><strong>6 months of inactivity<\/strong> &#8211; Google revokes refresh tokens that have not been used for 6 months. A user who linked their account and then stopped using your app will get this error on the next attempt.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"ig-cause-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"ig-cause-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"ig-cause-text\"><strong>User changed their Google password<\/strong> &#8211; changing the Google account password revokes all existing OAuth tokens for that account, including refresh tokens issued to third-party apps.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"ig-cause-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"ig-cause-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"ig-cause-text\"><strong>Scope change on re-authorization<\/strong> &#8211; if you re-authorize with a different set of scopes than the original grant, Google revokes the previous refresh token.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"ig-cause-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"ig-cause-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"ig-cause-text\"><strong>Testing mode = 7-day token expiry<\/strong> &#8211; while your app is in Testing publishing status, refresh tokens expire after 7 days regardless of usage. This is the most common reason developers see <strong>invalid_grant<\/strong> after a week of testing.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"ig-cause-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"ig-cause-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"ig-cause-text\"><strong>Authorization code used more than once<\/strong> &#8211; the authorization code returned by Google in the OAuth redirect is single-use. If you call the token endpoint more than once with the same code, all subsequent calls return <strong>invalid_grant<\/strong>.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"ig-h3\">Fix: re-authorize with access_type=offline + prompt=consent<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"ig-code-wrapper\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"ig-editor-bar\"><!-- [et_pb_line_break_holder] -->        <span class=\"ig-dot ig-dot-r\"><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"ig-dot ig-dot-y\"><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"ig-dot ig-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"ig-filename\">build_auth_url.py<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"ig-pre\"><code><span class=\"k\">from<\/span> <span class=\"w\">google_auth_oauthlib.flow<\/span> <span class=\"k\">import<\/span> <span class=\"w\">Flow<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"w\">flow<\/span> <span class=\"k\">=<\/span> <span class=\"fn\">Flow.from_client_secrets_file<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"s\">'client_secrets.json'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">scopes=[<\/span><span class=\"s\">'https:\/\/www.googleapis.com\/auth\/gmail.readonly'<\/span><span class=\"w\">],<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">redirect_uri=REDIRECT_URI<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">)<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\"># access_type=offline  \u2192 get a refresh token<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># prompt=consent       \u2192 force re-consent, always returns a new refresh token<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">auth_url, state<\/span> <span class=\"k\">=<\/span> <span class=\"w\">flow.<\/span><span class=\"fn\">authorization_url<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">access_type=<\/span><span class=\"s\">'offline'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">prompt=<\/span><span class=\"s\">'consent'<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">)<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\"># Store the NEW refresh_token from the response<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># old token is now invalid -- update your DB<\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"ig-editor-ok\"><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" style=\"width:14px;height:14px;flex-shrink:0;\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <span>New refresh token issued &#8211; store it and discard the old one<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <pee class=\"ig-p\">To avoid <strong>invalid_grant<\/strong> in production: always use <code style=\"font-family:Courier New,monospace;font-size:13px;background:rgba(0,0,0,0.06);padding:2px 5px;border-radius:4px;\">access_type=offline<\/code> and <code style=\"font-family:Courier New,monospace;font-size:13px;background:rgba(0,0,0,0.06);padding:2px 5px;border-radius:4px;\">prompt=consent<\/code> when initiating the OAuth flow, update your stored refresh token every time the user re-authorizes, detect <strong>invalid_grant<\/strong> errors and trigger a graceful re-authorization UI (a &#8220;reconnect your Gmail account&#8221; prompt), and move your app out of Testing mode to get permanent tokens.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- CTA 1 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"ig-cta-strip\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"ig-cta-text-block\"><!-- [et_pb_line_break_holder] -->        <span class=\"ig-cta-label\">Skip refresh-token management<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"ig-cta-title\">Build on Unipile&#8217;s managed OAuth &#8211; no token lifecycle to handle<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <a class=\"ig-cta-btn\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <span>Build it with Unipile<\/span><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  document.querySelectorAll('[data-upl-link]').forEach(function(el){<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      e.preventDefault();<!-- [et_pb_line_break_holder] -->      var href = el.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->      var target = el.getAttribute('data-upl-target') || '_blank';<!-- [et_pb_line_break_holder] -->      window.open(href, target);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-cscr,<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr *,<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.18) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-p {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-symptom-card {<!-- [et_pb_line_break_holder] -->  background: rgba(251, 188, 4, 0.08) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(251, 188, 4, 0.3) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 22px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-symptom-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #92400e !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-causes-list {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-cause-item {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-cause-num {<!-- [et_pb_line_break_holder] -->  width: 22px !important;<!-- [et_pb_line_break_holder] -->  height: 22px !important;<!-- [et_pb_line_break_holder] -->  min-width: 22px !important;<!-- [et_pb_line_break_holder] -->  background: #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-fix-card {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.05) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(59, 185, 139, 0.25) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-fix-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-steps {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-step {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-step-num {<!-- [et_pb_line_break_holder] -->  width: 26px !important;<!-- [et_pb_line_break_holder] -->  height: 26px !important;<!-- [et_pb_line_break_holder] -->  min-width: 26px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-step-text {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr .cs-callout {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.08) !important;<!-- [et_pb_line_break_holder] -->  border-left: 3px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 0 10px 10px 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #065f46 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cscr code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(0,0,0,0.06) !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 5px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-cscr { padding: 60px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cscr .cs-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-cscr { padding: 50px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cscr .cs-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cscr .cs-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-cscr .cs-h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-cscr\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"cs-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"oauth-error-consent-screen\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cs-badge\"><span class=\"cs-badge-dot\"><\/span><span>Google Cloud Console<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"cs-h2\">The OAuth consent screen won&#8217;t show in Google Cloud Console<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"cs-intro\">This is the highest-volume search query in this cluster (390+ monthly searches). The &#8220;OAuth consent screen&#8221; page appears to have disappeared from Google Cloud Console for many developers in 2024-2026 due to a UI redesign. It has not been removed &#8211; it moved.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"cs-h3\">Symptom<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cs-symptom-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"cs-symptom-label\">What you see<\/span><!-- [et_pb_line_break_holder] -->      <pee class=\"cs-p\" style=\"margin-bottom:0!important;\">You open Google Cloud Console and navigate to <strong>APIs &#038; Services<\/strong>, but the &#8220;OAuth consent screen&#8221; menu item is either missing or clicking it redirects you to a new <strong>&#8220;OAuth Overview&#8221;<\/strong> page that shows a summary dashboard instead of the configuration form you expected.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"cs-h3\">Causes<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cs-causes-list\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cs-cause-item\"><!-- [et_pb_line_break_holder] -->        <span class=\"cs-cause-num\">1<\/span><!-- [et_pb_line_break_holder] -->        <span>Google redesigned the Google Cloud Console in 2024 and moved the OAuth consent screen configuration into a new <strong>&#8220;OAuth Overview&#8221;<\/strong> section under APIs &#038; Services. The direct edit form is now one level deeper.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cs-cause-item\"><!-- [et_pb_line_break_holder] -->        <span class=\"cs-cause-num\">2<\/span><!-- [et_pb_line_break_holder] -->        <span>You may have <strong>Viewer role<\/strong> instead of Editor or Owner role on the Google Cloud project. Viewer-role accounts can see the overview but cannot access the consent screen configuration form.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cs-cause-item\"><!-- [et_pb_line_break_holder] -->        <span class=\"cs-cause-num\">3<\/span><!-- [et_pb_line_break_holder] -->        <span>You may be on the <strong>wrong project<\/strong>. Each project has its own OAuth consent screen. If you have multiple projects, check the project selector at the top of the console.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cs-cause-item\"><!-- [et_pb_line_break_holder] -->        <span class=\"cs-cause-num\">4<\/span><!-- [et_pb_line_break_holder] -->        <span>You have not yet selected a <strong>User type<\/strong> (Internal or External) for the OAuth consent screen. This selection is required before the configuration form becomes accessible.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"cs-h3\">Fix (step by step)<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cs-fix-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"cs-fix-label\">Steps to access the OAuth consent screen configuration<\/span><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cs-steps\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cs-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-num\">1<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-text\">Verify you are on the correct Google Cloud project using the project dropdown at the top of the page. If not, switch to the project where your OAuth client ID is configured.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cs-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-num\">2<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-text\">Confirm your role: go to <strong>IAM &#038; Admin &#8211; IAM<\/strong> and verify you have <strong>Editor<\/strong> or <strong>Owner<\/strong> role. Viewer role cannot edit the consent screen.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cs-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-num\">3<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-text\">Navigate to <strong>APIs &#038; Services &#8211; OAuth overview<\/strong>. You will see a summary page.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cs-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-num\">4<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-text\">Look for the <strong>&#8220;Edit App&#8221;<\/strong> button or the <strong>&#8220;Branding&#8221;<\/strong> \/ <strong>&#8220;Audience&#8221;<\/strong> \/ <strong>&#8220;Scopes&#8221;<\/strong> tabs. These are the sections of what was formerly a single &#8220;OAuth consent screen&#8221; configuration page.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cs-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-num\">5<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-text\">If you have never set up an OAuth consent screen on this project, click <strong>Get started<\/strong> and choose your User type: <strong>Internal<\/strong> (Workspace users only, no verification needed) or <strong>External<\/strong> (any Google account, verification required for sensitive scopes).<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cs-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-num\">6<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"cs-step-text\">Fill in all required fields: app name, support email, and for External apps: homepage URL and privacy policy URL.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cs-callout\"><!-- [et_pb_line_break_holder] -->      <strong>Quick tip:<\/strong> you can also navigate directly via this URL pattern (replace YOUR_PROJECT_ID): <code>https:\/\/console.cloud.google.com\/apis\/credentials\/consent?project=YOUR_PROJECT_ID<\/code>. This deep link bypasses the overview page and goes straight to the consent screen configuration. For a full walkthrough of every configuration field, user type selection, and the 100-user testing cap, see our <a href=\"https:\/\/www.unipile.com\/google-oauth-consent-screen\/\" style=\"color:#3BB98B;text-decoration:underline;font-weight:600;\">OAuth consent screen setup guide<\/a>.<!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;100%&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700;800&#038;family=JetBrains+Mono:wght@400;500;600&#038;display=swap\" rel=\"stylesheet\">\n<style>\n#upl-skip-oauth-8.upl-skip-oauth-strip,\n#upl-skip-oauth-8.upl-skip-oauth-strip *,\n#upl-skip-oauth-8.upl-skip-oauth-strip *::before,\n#upl-skip-oauth-8.upl-skip-oauth-strip *::after { margin:0 !important; padding:0 !important; box-sizing:border-box !important; border:none !important; outline:none !important; font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif !important; line-height:normal !important; letter-spacing:normal !important; text-transform:none !important; text-decoration:none !important; list-style:none !important; background:transparent !important; float:none !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip { max-width:1100px !important; margin:40px auto !important; padding:0 24px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-strip { position:relative !important; background:linear-gradient(135deg,#0f2736 0%,#143447 50%,#0f2736 100%) !important; border-radius:18px !important; overflow:hidden !important; box-shadow:0 20px 55px rgba(15,39,54,0.22) !important; padding:32px 48px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-bg-grid { position:absolute !important; top:0 !important; left:0 !important; right:0 !important; bottom:0 !important; background-image:linear-gradient(rgba(59,185,139,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(59,185,139,0.05) 1px,transparent 1px) !important; background-size:40px 40px !important; pointer-events:none !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-glow-1 { position:absolute !important; top:-140px !important; right:-100px !important; width:380px !important; height:380px !important; background:radial-gradient(circle,rgba(221,223,76,0.18) 0%,transparent 70%) !important; pointer-events:none !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-glow-2 { position:absolute !important; bottom:-180px !important; left:-120px !important; width:460px !important; height:460px !important; background:radial-gradient(circle,rgba(59,185,139,0.13) 0%,transparent 70%) !important; pointer-events:none !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-content { position:relative !important; z-index:2 !important; display:grid !important; grid-template-columns:1.1fr 1fr !important; gap:40px !important; align-items:center !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-text { display:flex !important; flex-direction:column !important; gap:14px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-h { font-family:'Poppins',sans-serif !important; font-size:34px !important; font-weight:700 !important; line-height:1.12 !important; color:#ffffff !important; letter-spacing:-0.7px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-h .h-yellow { color:#DDDF4C !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-h .h-strike { color:rgba(255,255,255,0.55) !important; text-decoration:line-through !important; text-decoration-color:rgba(234,67,53,0.75) !important; text-decoration-thickness:3px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-desc { font-size:15px !important; line-height:1.55 !important; color:rgba(255,255,255,0.75) !important; max-width:490px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-buttons { display:flex !important; align-items:center !important; gap:18px !important; flex-wrap:wrap !important; margin-top:4px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-btn-primary { display:inline-flex !important; align-items:center !important; gap:10px !important; padding:14px 24px !important; background:#DDDF4C !important; color:#0F2836 !important; border-radius:10px !important; text-decoration:none !important; font-weight:700 !important; font-size:15px !important; box-shadow:0 12px 28px rgba(15,39,54,0.25) !important; transition:transform 0.2s ease,box-shadow 0.2s ease !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-btn-primary:hover { transform:translateY(-3px) !important; box-shadow:0 16px 32px rgba(15,39,54,0.35) !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-btn-primary svg { width:16px !important; height:16px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-trust-line { display:flex !important; align-items:center !important; gap:8px !important; font-size:12px !important; color:rgba(255,255,255,0.5) !important; font-weight:600 !important; margin-top:2px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-trust-line svg { width:13px !important; height:13px !important; color:#3BB98B !important; flex-shrink:0 !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-code-wrap { position:relative !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .casa-badge { position:absolute !important; top:-14px !important; right:-10px !important; z-index:3 !important; display:inline-flex !important; align-items:center !important; gap:6px !important; padding:6px 12px !important; background:#3BB98B !important; color:#ffffff !important; border-radius:20px !important; font-size:10.5px !important; font-weight:700 !important; text-transform:uppercase !important; letter-spacing:0.7px !important; box-shadow:0 8px 20px rgba(59,185,139,0.4) !important; border:2px solid #0f2736 !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .casa-badge svg { width:12px !important; height:12px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .cta-code { background:#0d1117 !important; border:1px solid rgba(255,255,255,0.1) !important; border-radius:12px !important; overflow:hidden !important; box-shadow:0 20px 45px rgba(0,0,0,0.45) !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .code-head { background:rgba(255,255,255,0.04) !important; padding:10px 16px !important; display:flex !important; align-items:center !important; gap:10px !important; border-bottom:1px solid rgba(255,255,255,0.06) !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .code-dots { display:flex !important; gap:5px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .code-dot { width:9px !important; height:9px !important; border-radius:50% !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .code-dot-r { background:#ff5f56 !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .code-dot-y { background:#ffbd2e !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .code-dot-g { background:#27c93f !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .code-filename { font-family:'JetBrains Mono',monospace !important; font-size:11.5px !important; color:rgba(255,255,255,0.5) !important; margin-left:4px !important; display:flex !important; align-items:center !important; gap:8px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .code-lang { background:rgba(59,185,139,0.15) !important; border:1px solid rgba(59,185,139,0.3) !important; color:#3BB98B !important; font-size:8.5px !important; font-weight:700 !important; padding:2px 6px !important; border-radius:3px !important; text-transform:uppercase !important; letter-spacing:0.5px !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .code-body { padding:14px 18px 16px !important; font-family:'JetBrains Mono',monospace !important; font-size:11.5px !important; line-height:1.7 !important; color:#c9d1d9 !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .code-line { display:block !important; white-space:pre !important; font-family:'JetBrains Mono',monospace !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .c-cmt { color:#8b949e !important; font-style:italic !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .c-kw { color:#ff7b72 !important; font-weight:600 !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .c-str { color:#a5d6ff !important; }\n#upl-skip-oauth-8.upl-skip-oauth-strip .c-flag { color:#DDDF4C !important; }\n@media (max-width:920px) {\n  #upl-skip-oauth-8.upl-skip-oauth-strip .cta-strip { padding:30px 26px !important; }\n  #upl-skip-oauth-8.upl-skip-oauth-strip .cta-content { grid-template-columns:1fr !important; gap:26px !important; }\n  #upl-skip-oauth-8.upl-skip-oauth-strip .cta-h { font-size:26px !important; }\n  #upl-skip-oauth-8.upl-skip-oauth-strip .casa-badge { top:-12px !important; right:8px !important; }\n}\n@media (max-width:480px) {\n  #upl-skip-oauth-8.upl-skip-oauth-strip { padding:0 16px !important; }\n  #upl-skip-oauth-8.upl-skip-oauth-strip .cta-strip { padding:24px 18px !important; }\n  #upl-skip-oauth-8.upl-skip-oauth-strip .cta-h { font-size:22px !important; }\n  #upl-skip-oauth-8.upl-skip-oauth-strip .cta-buttons { flex-direction:column !important; align-items:stretch !important; }\n  #upl-skip-oauth-8.upl-skip-oauth-strip .cta-btn-primary { justify-content:center !important; }\n  #upl-skip-oauth-8.upl-skip-oauth-strip .code-body { font-size:10.5px !important; }\n  #upl-skip-oauth-8.upl-skip-oauth-strip .casa-badge { font-size:9.5px !important; padding:5px 10px !important; }\n}\n<\/style>\n<div id=\"upl-skip-oauth-8\" class=\"upl-skip-oauth-strip\">\n<div class=\"cta-strip\">\n<div class=\"cta-bg-grid\"><\/div>\n<div class=\"cta-glow-1\"><\/div>\n<div class=\"cta-glow-2\"><\/div>\n<div class=\"cta-content\">\n<div class=\"cta-text\">\n<h2 class=\"cta-h\"><span class=\"h-strike\">Weeks of verification.<\/span><!\u2013- [et_pb_br_holder] -\u2013>Use <span class=\"h-yellow\">Unipile&#8217;s key<\/span> and start now.<\/h2>\n<pee class=\"cta-desc\">Don&#8217;t lose customers waiting on Google&#8217;s review. Connect Gmail accounts in 5 minutes with our pre-verified developer credentials.<\/pee>\n<div class=\"cta-buttons\">\n          <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\" class=\"cta-btn-primary\"><span>Use Unipile&#8217;s Google Key<\/span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a>\n        <\/div>\n<div class=\"cta-trust-line\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>SOC 2 &#8211; GDPR &#8211; No app review needed &#8211; Switch to your own key anytime<\/span><\/div>\n<\/p><\/div>\n<div class=\"cta-code-wrap\">\n        <span class=\"casa-badge\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg><span>CASA Tier 2 Certified<\/span><\/span><\/p>\n<div class=\"cta-code\">\n<div class=\"code-head\">\n<div class=\"code-dots\"><span class=\"code-dot code-dot-r\"><\/span><span class=\"code-dot code-dot-y\"><\/span><span class=\"code-dot code-dot-g\"><\/span><\/div>\n<p><span class=\"code-filename\"><span>connect-gmail.sh<\/span><span class=\"code-lang\">curl<\/span><\/span><\/div>\n<div class=\"code-body\"><span class=\"code-line\"><span class=\"c-cmt\"># No Google Cloud Console. No review.<\/span><\/span><span class=\"code-line\"><span class=\"c-cmt\"># Connect any Gmail account in 5 min.<\/span><\/span><span class=\"code-line\"> <\/span><span class=\"code-line\"><span class=\"c-kw\">curl<\/span> -X POST <span class=\"c-str\">&#8220;https:\/\/api.unipile.com\/v1\/accounts&#8221;<\/span> \\<\/span><span class=\"code-line\">  -H <span class=\"c-str\">&#8220;X-API-KEY: $UNIPILE_KEY&#8221;<\/span> \\<\/span><span class=\"code-line\">  -d <span class=\"c-str\">&#8216;{<\/span><\/span><span class=\"code-line\">    <span class=\"c-str\">&#8220;provider&#8221;: &#8220;GOOGLE_OAUTH&#8221;,<\/span><\/span><span class=\"code-line\">    <span class=\"c-str\">&#8220;use_unipile_credentials&#8221;: <span class=\"c-flag\">true<\/span><\/span><\/span><span class=\"code-line\">  <span class=\"c-str\">}&#8217;<\/span><\/span><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-iscope,<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope *,<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-error-block {<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-error-block code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13.5px !important;<!-- [et_pb_line_break_holder] -->  color: #f87171 !important;<!-- [et_pb_line_break_holder] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-p {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-table-wrap {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope table {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  border-collapse: collapse !important;<!-- [et_pb_line_break_holder] -->  display: table !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope thead tr {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope thead th {<!-- [et_pb_line_break_holder] -->  padding: 12px 18px !important;<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.75) !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope tbody tr {<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f0f2f5 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope tbody tr:last-child {<!-- [et_pb_line_break_holder] -->  border-bottom: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope tbody td {<!-- [et_pb_line_break_holder] -->  padding: 12px 18px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-scope-url {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  word-break: break-all !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-type-pill {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-type-sensitive {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-type-basic {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #065f46 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-fix-card {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.05) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(59, 185, 139, 0.25) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-fix-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-steps {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-step {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-step-num {<!-- [et_pb_line_break_holder] -->  width: 26px !important;<!-- [et_pb_line_break_holder] -->  height: 26px !important;<!-- [et_pb_line_break_holder] -->  min-width: 26px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-step-text {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-link {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(0,0,0,0.06) !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 5px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Mobile table -> cards *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-mobile-cards {<!-- [et_pb_line_break_holder] -->  display: none !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-mcard {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-iscope .isc-mcard-scope {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  word-break: break-all !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 768px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-iscope { padding: 60px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-iscope .isc-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-iscope .isc-table-wrap { display: none !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-iscope .isc-mobile-cards { display: flex !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-iscope .isc-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-iscope .isc-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-iscope .isc-h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-iscope\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"isc-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"oauth-error-invalid-scope\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"isc-badge\"><span>invalid_scope<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"isc-h2\">invalid_scope<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"isc-intro\">A typo in the scope URL or a disabled API will cause Google to reject the entire authorization request before any user interaction happens.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"isc-h3\">The exact error message<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"isc-error-block\"><!-- [et_pb_line_break_holder] -->      <code>{\"error\": \"invalid_scope\",<!-- [et_pb_line_break_holder] --> \"error_description\": \"Some requested scopes were invalid.<!-- [et_pb_line_break_holder] --> {valid=[https:\/\/mail.google.com\/], invalid=[gmail.readonly]}\"}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->-- or on the consent screen URL --<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->error=invalid_scope&error_description=Some+requested+scopes+were+invalid<\/code><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"isc-h3\">Cause<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"isc-p\">Two common root causes: (1) the scope value is a short name like <code>gmail.readonly<\/code> instead of the full URL <code>https:\/\/www.googleapis.com\/auth\/gmail.readonly<\/code>, or (2) the Gmail API (or any other Google API you are scoping to) is not enabled in the Google Cloud project.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"isc-h3\">Common Gmail scopes and their correct URLs<\/h3>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Desktop table --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"isc-table-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<table><!-- [et_pb_line_break_holder] -->        <\/p>\n<thead><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Scope URL (use the full URL)<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>What it allows<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Type<\/th>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/thead>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tbody><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"isc-scope-url\">https:\/\/www.googleapis.com\/auth\/gmail.readonly<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Read all messages and threads<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"isc-type-pill isc-type-sensitive\">Sensitive<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"isc-scope-url\">https:\/\/www.googleapis.com\/auth\/gmail.send<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Send email on behalf of the user<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"isc-type-pill isc-type-sensitive\">Sensitive<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"isc-scope-url\">https:\/\/www.googleapis.com\/auth\/gmail.modify<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Read, compose, send, delete threads<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"isc-type-pill isc-type-sensitive\">Sensitive<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"isc-scope-url\">https:\/\/mail.google.com\/<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Full mailbox access (IMAP\/SMTP)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"isc-type-pill isc-type-sensitive\">Restricted<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"isc-scope-url\">https:\/\/www.googleapis.com\/auth\/userinfo.email<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Read user&#8217;s email address only<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"isc-type-pill isc-type-basic\">Basic<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/tbody>\n<p><!-- [et_pb_line_break_holder] -->      <\/table>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Mobile cards --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"isc-mobile-cards\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"isc-mcard\"><!-- [et_pb_line_break_holder] -->        <span class=\"isc-mcard-scope\">https:\/\/www.googleapis.com\/auth\/gmail.readonly<\/span><!-- [et_pb_line_break_holder] -->        <span style=\"font-size:13px;color:#383838;\">Read all messages and threads<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"isc-type-pill isc-type-sensitive\" style=\"margin-top:6px;display:inline-block;\">Sensitive<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"isc-mcard\"><!-- [et_pb_line_break_holder] -->        <span class=\"isc-mcard-scope\">https:\/\/www.googleapis.com\/auth\/gmail.send<\/span><!-- [et_pb_line_break_holder] -->        <span style=\"font-size:13px;color:#383838;\">Send email on behalf of the user<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"isc-type-pill isc-type-sensitive\" style=\"margin-top:6px;display:inline-block;\">Sensitive<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"isc-mcard\"><!-- [et_pb_line_break_holder] -->        <span class=\"isc-mcard-scope\">https:\/\/www.googleapis.com\/auth\/gmail.modify<\/span><!-- [et_pb_line_break_holder] -->        <span style=\"font-size:13px;color:#383838;\">Read, compose, send, delete threads<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"isc-type-pill isc-type-sensitive\" style=\"margin-top:6px;display:inline-block;\">Sensitive<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"isc-mcard\"><!-- [et_pb_line_break_holder] -->        <span class=\"isc-mcard-scope\">https:\/\/mail.google.com\/<\/span><!-- [et_pb_line_break_holder] -->        <span style=\"font-size:13px;color:#383838;\">Full mailbox access (IMAP\/SMTP)<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"isc-type-pill isc-type-sensitive\" style=\"margin-top:6px;display:inline-block;\">Restricted<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"isc-h3\">Fix<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"isc-fix-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"isc-fix-label\">Steps to fix invalid_scope<\/span><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"isc-steps\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"isc-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"isc-step-num\">1<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"isc-step-text\">Check that you are using the <strong>full scope URL<\/strong> (starts with <code>https:\/\/www.googleapis.com\/auth\/<\/code> or <code>https:\/\/mail.google.com\/<\/code>). Never use the short form like <code>gmail.readonly<\/code>.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"isc-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"isc-step-num\">2<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"isc-step-text\">In Google Cloud Console, go to <strong>APIs &#038; Services &#8211; Enabled APIs &#038; services<\/strong>. Search for <strong>Gmail API<\/strong> and confirm it shows as &#8220;Enabled&#8221;. If not, click Enable.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"isc-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"isc-step-num\">3<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"isc-step-text\">Confirm the scope is listed in your OAuth consent screen under <strong>Scopes for Google APIs<\/strong>. If it is missing, add it.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"isc-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"isc-step-num\">4<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"isc-step-text\">Re-test your authorization URL. For a full list of valid Gmail scopes and their sensitivity classification, see the <a class=\"isc-link\" href=\"https:\/\/www.unipile.com\/gmail-api-scopes-complete-guide\/\">Gmail API scopes guide<\/a>.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; sticky_enabled=&#8221;0&#8243;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-ucap,<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap *,<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-p {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-cause-card {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.05) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(234, 67, 53, 0.2) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-cause-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-fix-card {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.05) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(59, 185, 139, 0.25) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-fix-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-steps {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-step {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-step-num {<!-- [et_pb_line_break_holder] -->  width: 26px !important;<!-- [et_pb_line_break_holder] -->  height: 26px !important;<!-- [et_pb_line_break_holder] -->  min-width: 26px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-step-text {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-link {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Unipile angle block *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-unipile-block {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 32px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-unipile-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.2) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 5px 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-unipile-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 22px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-unipile-desc {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.8) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-unipile-disclaimer {<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.45) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->  font-style: italic !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-cta-btn {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.25s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-cta-btn:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-ucap .uc-cta-btn svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-ucap { padding: 60px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-ucap .uc-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-ucap { padding: 50px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-ucap .uc-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-ucap .uc-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-ucap .uc-cta-btn { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-ucap .uc-unipile-block { padding: 24px 20px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-ucap .uc-h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-ucap\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"uc-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"oauth-error-100-user-cap\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"uc-badge\"><span>Verification<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"uc-h2\">&#8220;Google hasn&#8217;t verified this app&#8221; &#038; the 100-user cap<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"uc-intro\">The warning screen &#8220;Google hasn&#8217;t verified this app&#8221; appears when an unverified app requests sensitive or restricted scopes. While users can proceed by clicking &#8220;Advanced&#8221; and then &#8220;Go to [app name] (unsafe)&#8221;, this is not suitable for production &#8211; and Testing mode caps your app at 100 unique users total.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"uc-h3\">Cause<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"uc-cause-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"uc-cause-label\">Root cause<\/span><!-- [et_pb_line_break_holder] -->      <pee class=\"uc-p\" style=\"margin-bottom:8px!important;\">When your app requests Sensitive scopes (like <code style=\"font-family:Courier New,monospace;font-size:12px;background:rgba(0,0,0,0.06);padding:2px 4px;border-radius:3px;\">gmail.readonly<\/code> or <code style=\"font-family:Courier New,monospace;font-size:12px;background:rgba(0,0,0,0.06);padding:2px 4px;border-radius:3px;\">gmail.send<\/code>), Google displays this warning screen to every user until you complete the verification review. For Restricted scopes, you also need to pass a third-party security audit (CASA Tier 2).<\/pee><!-- [et_pb_line_break_holder] -->      <pee class=\"uc-p\" style=\"margin-bottom:0!important;\">While in Testing publishing status, this warning screen is also displayed even for test users, and the total number of test users allowed is capped at 100. Tokens for test users expire after 7 days.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 class=\"uc-h3\">Fix<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"uc-fix-card\"><!-- [et_pb_line_break_holder] -->      <span class=\"uc-fix-label\">Path to production for sensitive\/restricted scopes<\/span><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"uc-steps\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"uc-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"uc-step-num\">1<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"uc-step-text\">Complete the OAuth consent screen: app name, support email, homepage URL, and privacy policy URL must all be provided.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"uc-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"uc-step-num\">2<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"uc-step-text\">On the OAuth consent screen \/ Audience page, click <strong>Publish App<\/strong> (moves status from Testing to Production, triggering Google&#8217;s verification flow).<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"uc-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"uc-step-num\">3<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"uc-step-text\">For Sensitive scopes: complete <strong>Google&#8217;s verification review<\/strong>. This involves confirming your identity, explaining your use of each sensitive scope, and linking a YouTube video demonstrating the OAuth flow.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"uc-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"uc-step-num\">4<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"uc-step-text\">For Restricted scopes (e.g. <code style=\"font-family:Courier New,monospace;font-size:12px;background:rgba(0,0,0,0.06);padding:2px 4px;border-radius:3px;\">https:\/\/mail.google.com\/<\/code>): additionally complete a <strong>CASA Tier 2<\/strong> security assessment by a Google-approved assessor.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"uc-step\"><!-- [et_pb_line_break_holder] -->          <span class=\"uc-step-num\">5<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"uc-step-text\">For the full step-by-step consent screen setup, scope selection, and verification workflow, see the <a class=\"uc-link\" href=\"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/\">Google app verification and CASA guide<\/a>.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Unipile angle - CTA 2 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"uc-unipile-block\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"uc-unipile-eyebrow\"><span>Independent technical intermediary<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <pee class=\"uc-unipile-title\">These errors disappear when the OAuth project is already certified<\/pee><!-- [et_pb_line_break_holder] -->      <pee class=\"uc-unipile-desc\">The &#8220;Google hasn&#8217;t verified this app&#8221; screen, the 100-user cap, and the 7-day token expiry in Testing mode are all symptoms of <strong>owning and managing your own Google Cloud project<\/strong>. An independent technical intermediary that acts <em>on behalf of each authenticated user<\/em> &#8211; and has already completed CASA Tier 2 certification &#8211; removes this entire overhead from your side. Your users authorize once; token lifecycle, scope compliance, and re-verification are handled at the platform level.<\/pee><!-- [et_pb_line_break_holder] -->      <pee class=\"uc-unipile-disclaimer\">This is not a workaround for Google&#8217;s security review. Unipile has independently completed CASA Tier 2 and is not affiliated with, endorsed by, or sponsored by Google.<\/pee><!-- [et_pb_line_break_holder] -->      <a class=\"uc-cta-btn\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <span>Ship on already-certified Google OAuth<\/span><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  document.querySelectorAll('[data-upl-link]').forEach(function(el){<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      e.preventDefault();<!-- [et_pb_line_break_holder] -->      var href = el.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->      var target = el.getAttribute('data-upl-target') || '_blank';<!-- [et_pb_line_break_holder] -->      window.open(href, target);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-avoid,<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid *,<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 24px 40px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid .av-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid .av-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid .av-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid .av-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid .av-p {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid .av-p:last-child {<!-- [et_pb_line_break_holder] -->  margin-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-avoid .av-link {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-avoid { padding: 60px 20px 32px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-avoid .av-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-avoid { padding: 50px 16px 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-avoid .av-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-avoid .av-p { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-avoid .av-h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-avoid\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"av-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"oauth-errors-avoid\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"av-badge\"><span class=\"av-badge-dot\"><\/span><span>Strategy<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"av-h2\">How to avoid this entire class of Google OAuth errors<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"av-p\">Looking across all 7 google oauth errors in this guide, a pattern emerges. Every single one originates from the same root: managing your own Google Cloud project and its OAuth configuration manually. These google oauth errors are not random &#8211; they are structural consequences of owning an unverified OAuth project, from redirect URI mismatches and token rotation failures to the 100-user cap and consent screen rejections.<\/pee><!-- [et_pb_line_break_holder] -->    <pee class=\"av-p\">There is another way. Using an <strong>independent technical intermediary<\/strong> that acts <strong>on behalf of each authenticated user<\/strong> &#8211; one that has already completed Google&#8217;s verification review and CASA Tier 2 security certification &#8211; shifts every one of these failure modes off your plate. The comparison below shows exactly which errors disappear and which infrastructure Unipile handles instead. See the <a class=\"av-link\" href=\"https:\/\/developer.unipile.com\/docs\/google-oauth\" target=\"_blank\" rel=\"noopener\">Unipile Google OAuth documentation<\/a> for the full integration guide.<\/pee><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  document.querySelectorAll('[data-upl-link]').forEach(function(el){<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      e.preventDefault();<!-- [et_pb_line_break_holder] -->      var href = el.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->      var target = el.getAttribute('data-upl-target') || '_blank';<!-- [et_pb_line_break_holder] -->      window.open(href, target);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-cmp,<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp *,<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp {<!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-inner {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Eyebrow badge *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-eyebrow-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-subtitle {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Two-column grid *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Column cards *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 8px 32px rgba(15, 39, 54, 0.07) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Column header *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-head {<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-diy .goec-col-head {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.06) !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 2px solid rgba(234, 67, 53, 0.15) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-uni .goec-col-head {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.08) !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 2px solid rgba(59, 185, 139, 0.18) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-tag {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-tag-hard {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-tag-simple {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Error rows *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-rows {<!-- [et_pb_line_break_holder] -->  padding: 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 0 !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-row {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->  padding-bottom: 18px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-row:last-child {<!-- [et_pb_line_break_holder] -->  padding-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Vertical connector *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-row-line {<!-- [et_pb_line_break_holder] -->  position: absolute !important;<!-- [et_pb_line_break_holder] -->  left: 11px !important;<!-- [et_pb_line_break_holder] -->  top: 24px !important;<!-- [et_pb_line_break_holder] -->  width: 2px !important;<!-- [et_pb_line_break_holder] -->  bottom: 0 !important;<!-- [et_pb_line_break_holder] -->  z-index: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-diy .goec-row-line {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.15) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-uni .goec-row-line {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.20) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-row:last-child .goec-row-line {<!-- [et_pb_line_break_holder] -->  display: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Row dot *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-row-dot {<!-- [et_pb_line_break_holder] -->  width: 24px !important;<!-- [et_pb_line_break_holder] -->  height: 24px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->  z-index: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-diy .goec-row-dot {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.12) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-diy .goec-row-dot svg {<!-- [et_pb_line_break_holder] -->  width: 13px !important;<!-- [et_pb_line_break_holder] -->  height: 13px !important;<!-- [et_pb_line_break_holder] -->  stroke: #c0392b !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-uni .goec-row-dot {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.15) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-uni .goec-row-dot svg {<!-- [et_pb_line_break_holder] -->  width: 13px !important;<!-- [et_pb_line_break_holder] -->  height: 13px !important;<!-- [et_pb_line_break_holder] -->  stroke: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Row content *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-row-content {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  padding-top: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-row-title {<!-- [et_pb_line_break_holder] -->  font-size: 13.5px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-row-meta {<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-diy .goec-row-meta {<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-uni .goec-row-meta {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Summary bar *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-summary {<!-- [et_pb_line_break_holder] -->  margin: 0 24px 24px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-diy .goec-summary {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.07) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(234, 67, 53, 0.15) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-uni .goec-summary {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.07) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(59, 185, 139, 0.18) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-summary-icon {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-diy .goec-summary-icon {<!-- [et_pb_line_break_holder] -->  stroke: #c0392b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-uni .goec-summary-icon {<!-- [et_pb_line_break_holder] -->  stroke: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-summary-text {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-diy .goec-summary-text {<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-col-uni .goec-summary-text {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* CASA card (Unipile column) *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-casa {<!-- [et_pb_line_break_holder] -->  margin: 0 24px 24px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.10) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(221, 223, 76, 0.30) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-casa-head {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-casa-shield {<!-- [et_pb_line_break_holder] -->  width: 32px !important;<!-- [et_pb_line_break_holder] -->  height: 32px !important;<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-casa-shield svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  stroke: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-casa-title {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-casa-sub {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-casa-benefits {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 7px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-casa-benefit {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-casa-benefit svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 2px !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-casa-benefit-text {<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.55 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* BYOC highlight strip *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-byoc {<!-- [et_pb_line_break_holder] -->  margin: 0 24px 24px !important;<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-byoc-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-byoc-desc {<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.82) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Callout *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-callout {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.07) !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 0 12px 12px 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 22px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-callout-text {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-callout-text strong {<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* CTA strip *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-cta-wrap {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 28px 32px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  gap: 24px !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-cta-text {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  min-width: 220px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-cta-label {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-cta-desc {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-cta-btn {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-cta-btn:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-cta-btn svg {<!-- [et_pb_line_break_holder] -->  width: 15px !important;<!-- [et_pb_line_break_holder] -->  height: 15px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Compliance disclaimer *\/<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-compliance {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.06) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(59, 185, 139, 0.16) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-compliance-text {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-cmp .goec-compliance-text strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Responsive *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp { padding: 56px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-grid { grid-template-columns: 1fr !important; gap: 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-cta-wrap { flex-direction: column !important; gap: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp { padding: 44px 16px !important; overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-subtitle { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-cta-wrap { padding: 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-cta-text { min-width: 0 !important; width: 100% !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-cta-btn { width: 100% !important; justify-content: center !important; white-space: normal !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-compliance { padding: 14px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-callout { padding: 16px 18px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 375px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-rows { padding: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-summary { margin: 0 16px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-casa { margin: 0 16px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-byoc { margin: 0 16px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-col-head { flex-wrap: wrap !important; gap: 8px !important; padding: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-col-title { font-size: 15px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-row-title { font-size: 13px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-casa { padding: 14px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-byoc { padding: 14px 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 320px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp { padding: 36px 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-rows { padding: 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-summary { margin: 0 12px 16px !important; padding: 12px 14px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-casa { margin: 0 12px 16px !important; padding: 12px 14px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goerr-cmp .goec-byoc { margin: 0 12px 16px !important; padding: 12px 14px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"diy-vs-unipile\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-cmp\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"goec-inner\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goec-eyebrow\"><span class=\"goec-eyebrow-dot\"><\/span><span>Fixing it yourself vs. Unipile<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>Every error in this guide: who owns the fix?<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"goec-subtitle\">The 7 Google OAuth errors covered above share a common root: you own the Google Cloud project, so you own every failure mode. Here is a side-by-side look at what that means in practice.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- 2-column comparison grid --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goec-grid\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- LEFT: Fixing it yourself --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goec-col goec-col-diy\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goec-col-head\"><!-- [et_pb_line_break_holder] -->          <span class=\"goec-col-title\"><span>Fixing it yourself<\/span><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"goec-tag goec-tag-hard\"><span>Your responsibility<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goec-rows\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">redirect_uri_mismatch<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">Manage every redirect URI in Google Cloud Console<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">admin_policy_enforced<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">Depends on each user&#8217;s Workspace admin &#8211; out of your control<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">access_denied \/ app blocked<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">Google verification process + test user management<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">invalid_grant<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">Build and maintain your own refresh-token rotation logic<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">Consent screen issues<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">Configure and maintain the OAuth consent screen yourself<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">invalid_scope<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">Track which restricted scopes require Google verification<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">Unverified app + 100-user cap<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">Run Google verification and CASA Tier 2 assessment yourself<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goec-summary\"><!-- [et_pb_line_break_holder] -->          <svg class=\"goec-summary-icon\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span class=\"goec-summary-text\"><span>You own and debug all of it<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- RIGHT: With Unipile --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goec-col goec-col-uni\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goec-col-head\"><!-- [et_pb_line_break_holder] -->          <span class=\"goec-col-title\"><span>With Unipile<\/span><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"goec-tag goec-tag-simple\"><span>Handled<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goec-rows\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">Hosted auth link &#8211; no consent screen to configure<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">No redirect URI management, ever<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">Redirect URIs handled for you<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">redirect_uri_mismatch simply cannot occur<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">Refresh tokens managed automatically<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">No &#8220;reconnect your Gmail&#8221; errors reaching your users<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-dot\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-row-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-title\">Connect on Unipile&#8217;s already-certified Google OAuth key<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-row-meta\">No unverified-app warning, no 100-user cap<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <!-- CASA certification card --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goec-casa\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-casa-head\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-casa-shield\"><svg viewBox=\"0 0 24 24\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div><!-- [et_pb_line_break_holder] -->              <span class=\"goec-casa-title\">CASA Tier 2 Certified<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goec-casa-sub\">Unipile&#8217;s Google OAuth key &#8211; independent technical intermediary<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goec-casa-benefits\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-casa-benefit\"><!-- [et_pb_line_break_holder] -->              <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->              <span class=\"goec-casa-benefit-text\">Skip building and certifying your own Google Cloud project &#8211; connect your users&#8217; Gmail on Unipile&#8217;s already-certified key, then switch to your own when you&#8217;re ready (BYOC)<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-casa-benefit\"><!-- [et_pb_line_break_holder] -->              <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->              <span class=\"goec-casa-benefit-text\">Access restricted Gmail scopes without waiting for your own Google verification to complete<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goec-casa-benefit\"><!-- [et_pb_line_break_holder] -->              <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->              <span class=\"goec-casa-benefit-text\">Unipile acts as an independent technical intermediary, processing requests on behalf of each authenticated user<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <!-- BYOC highlight --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goec-byoc\"><!-- [et_pb_line_break_holder] -->          <span class=\"goec-byoc-title\">Ship now on Unipile&#8217;s certified key &#8211; own it later<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"goec-byoc-desc\">Start connecting your users&#8217; Gmail accounts today via Unipile&#8217;s CASA Tier 2 certified Google OAuth key. Run your own Google Cloud verification in parallel. When it clears, switch to your own credentials with Bring Your Own Credentials (BYOC) &#8211; your users see your brand, Unipile continues handling the infrastructure.<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goec-summary\"><!-- [et_pb_line_break_holder] -->          <svg class=\"goec-summary-icon\" viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span class=\"goec-summary-text\"><span>These error classes simply don&#8217;t occur<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Callout --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goec-callout\"><!-- [et_pb_line_break_holder] -->      <pee class=\"goec-callout-text\"><strong>The key distinction:<\/strong> Unipile has already completed Google&#8217;s security review and CASA Tier 2 assessment for the connections it brokers on your behalf. This is not a workaround for Google&#8217;s security review &#8211; Unipile has already passed it. Your users get a clean consent screen (no &#8220;unverified app&#8221; warning), your app ships immediately, and you can pursue your own Google Cloud verification in parallel without any production deadline pressure.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- CTA --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goec-cta-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goec-cta-text\"><!-- [et_pb_line_break_holder] -->        <span class=\"goec-cta-label\">Build your Gmail integration without touching Google Cloud Console<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"goec-cta-desc\">Link Gmail accounts on Unipile&#8217;s already-certified Google OAuth key. No redirect URI configuration, no token rotation logic, no unverified-app warnings for your users.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <a class=\"goec-cta-btn\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><span>Ship on Unipile&#8217;s certified key<\/span><\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Compliance disclaimer --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goec-compliance\"><!-- [et_pb_line_break_holder] -->      <pee class=\"goec-compliance-text\"><strong>Compliance note:<\/strong> Unipile is an <strong>independent technical intermediary<\/strong>, not affiliated with, endorsed by, or sponsored by Google. Unipile&#8217;s Google OAuth client is CASA Tier 2 certified, enabling your users to authorize Gmail access without an &#8220;unverified app&#8221; warning for connections brokered through Unipile. This is not a workaround for Google&#8217;s security review &#8211; Unipile has already passed it for the connections it brokers <strong>on behalf of each authenticated user<\/strong>. Users can revoke access at any time via their Google Account permissions page.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; use_custom_width=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; sticky_enabled=&#8221;0&#8243;]<!DOCTYPE html><!-- [et_pb_line_break_holder] --><html lang=\"en\"><!-- [et_pb_line_break_holder] --><head><!-- [et_pb_line_break_holder] --><meta charset=\"UTF-8\"><!-- [et_pb_line_break_holder] --><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><!-- [et_pb_line_break_holder] --><title>Unipile &#8211; Google OAuth Errors FAQ<\/title><!-- [et_pb_line_break_holder] --><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><body style=\"background:#ffffff;margin:0;\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script type=\"application\/ld+json\"><!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->  \"@context\": \"https:\/\/schema.org\",<!-- [et_pb_line_break_holder] -->  \"@type\": \"FAQPage\",<!-- [et_pb_line_break_holder] -->  \"mainEntity\": [<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"What does admin_policy_enforced mean?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"admin_policy_enforced means a Google Workspace super administrator has blocked your app or the specific OAuth scopes it requests from being authorized by users in that organization. It is an organizational access control policy, not a bug in your code. The fix requires action from the Workspace super admin in the Google Admin Console under Security > API controls > Manage Third-Party App Access.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Can a regular user fix admin_policy_enforced?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"No. A regular user cannot fix admin_policy_enforced. Only a Google Workspace super administrator can resolve this error by marking the app as Trusted in the Admin Console. The affected user needs to contact their IT administrator or Google Workspace super admin and request that the specific OAuth app be added to the approved list.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Why does redirect_uri_mismatch happen on localhost?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"redirect_uri_mismatch on localhost happens when the URI you register in Google Cloud Console does not exactly match the URI your local development server uses. For example, registering http:\/\/localhost:3000\/callback but running your server on port 3001, or forgetting a trailing slash. Google allows http:\/\/ (not just https:\/\/) for localhost URIs. Make sure to register the exact URI your local server uses, including the correct port number.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Does changing Authorized JavaScript origins fix redirect_uri_mismatch?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"No. Authorized JavaScript origins and Authorized redirect URIs are two separate fields in Google Cloud Console. Authorized JavaScript origins are used for browser-side OAuth flows (implicit flow, Google Identity Services for Web). Authorized redirect URIs are used for server-side authorization code flows. To fix redirect_uri_mismatch, you must add the URI to the Authorized redirect URIs field, not the JavaScript origins field.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"How many redirect URIs can a Google OAuth client have?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"A single Google OAuth 2.0 client can have up to 100 Authorized redirect URIs registered. This allows you to register URIs for different environments (local development, staging, production) and different callback paths within the same client.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Why do I get invalid_grant after a few days?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"If your app is in Testing publishing status, Google refresh tokens expire after 7 days regardless of usage. This is by design for apps that have not yet been verified. Move your app to Production status by clicking Publish App on the OAuth consent screen page to get long-lived tokens. In Production, refresh tokens remain valid indefinitely as long as the user uses your app at least once every 6 months.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"How long before Google revokes an unused refresh token?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Google revokes refresh tokens that have not been used for 6 months (approximately 180 days). Additionally, refresh tokens are revoked when a user changes their Google account password, when they revoke your app's access in their Google Account security settings, when you re-authorize with different scopes, or when the total number of refresh tokens for a single user-app combination exceeds 50 (oldest tokens get revoked first).\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Why can't I see the OAuth consent screen in Google Cloud Console?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Google redesigned the Cloud Console in 2024. The OAuth consent screen configuration is now inside the OAuth Overview page under APIs & Services. Navigate to APIs & Services > OAuth overview, then click Edit App or use the Branding, Audience, and Scopes tabs. Also check that you have Editor or Owner role on the project (Viewer role cannot access the configuration form) and that you are on the correct project using the project selector at the top of the console.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  ]<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"faq-goerr\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goerr-faq\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goerr-faq,<!-- [et_pb_line_break_holder] -->#upl-goerr-faq *,<!-- [et_pb_line_break_holder] -->#upl-goerr-faq *::before,<!-- [et_pb_line_break_holder] -->#upl-goerr-faq *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', sans-serif !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->  max-width: 900px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-header {<!-- [et_pb_line_break_holder] -->  text-align: center !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-subtitle {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->  max-width: 720px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-list {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-item {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-item:hover {<!-- [et_pb_line_break_holder] -->  border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 4px 20px rgba(59,185,139,0.08) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-item.active {<!-- [et_pb_line_break_holder] -->  border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 8px 30px rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-question {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 22px 24px !important;<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-question-content {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-number {<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  width: 36px !important;<!-- [et_pb_line_break_holder] -->  height: 28px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.8rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-item.active .upl-faq-number {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.2) !important;<!-- [et_pb_line_break_holder] -->  color: #2a9d6e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-question-text {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 1.05rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-icon {<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  width: 32px !important;<!-- [et_pb_line_break_holder] -->  height: 32px !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-icon svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-item:hover .upl-faq-icon {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.1) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-item:hover .upl-faq-icon svg {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-item.active .upl-faq-icon {<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  transform: rotate(45deg) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-item.active .upl-faq-icon svg {<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-answer {<!-- [et_pb_line_break_holder] -->  max-height: 0 !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  transition: max-height 0.4s ease !important;<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-item.active .upl-faq-answer {<!-- [et_pb_line_break_holder] -->  max-height: 800px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-answer-content {<!-- [et_pb_line_break_holder] -->  padding: 4px 24px 24px 74px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-answer-content p {<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-answer-content strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-answer-content a {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-answer-content code {<!-- [et_pb_line_break_holder] -->  font-family: 'JetBrains Mono', 'SF Mono', Monaco, monospace !important;<!-- [et_pb_line_break_holder] -->  background: #f1f5f9 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 3px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.85em !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-cta {<!-- [et_pb_line_break_holder] -->  margin-top: 40px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  padding: 24px 28px !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-cta-text {<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-cta-button {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-cta-button:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goerr-faq .upl-faq-cta-button svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* === Tablet === *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-title {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* === Mobile === *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq {<!-- [et_pb_line_break_holder] -->    padding: 48px 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-header {<!-- [et_pb_line_break_holder] -->    margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-title {<!-- [et_pb_line_break_holder] -->    font-size: 26px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-subtitle {<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-question {<!-- [et_pb_line_break_holder] -->    padding: 16px 16px !important;<!-- [et_pb_line_break_holder] -->    gap: 12px !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-question-content {<!-- [et_pb_line_break_holder] -->    gap: 10px !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-number {<!-- [et_pb_line_break_holder] -->    width: 30px !important;<!-- [et_pb_line_break_holder] -->    height: 24px !important;<!-- [et_pb_line_break_holder] -->    font-size: 0.72rem !important;<!-- [et_pb_line_break_holder] -->    margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-question-text {<!-- [et_pb_line_break_holder] -->    font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-icon {<!-- [et_pb_line_break_holder] -->    width: 28px !important;<!-- [et_pb_line_break_holder] -->    height: 28px !important;<!-- [et_pb_line_break_holder] -->    margin-top: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-icon svg {<!-- [et_pb_line_break_holder] -->    width: 14px !important;<!-- [et_pb_line_break_holder] -->    height: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* On aligne la r\u00e9ponse avec le texte de la question (16px padding + 30px num + 10px gap = 56px) *\/<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-answer-content {<!-- [et_pb_line_break_holder] -->    padding: 2px 16px 18px 56px !important;<!-- [et_pb_line_break_holder] -->    font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-answer-content p {<!-- [et_pb_line_break_holder] -->    font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-cta {<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->    padding: 20px !important;<!-- [et_pb_line_break_holder] -->    gap: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-cta-button {<!-- [et_pb_line_break_holder] -->    width: 100% !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* === Small mobile === *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-title {<!-- [et_pb_line_break_holder] -->    font-size: 24px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-question {<!-- [et_pb_line_break_holder] -->    padding: 14px 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goerr-faq .upl-faq-answer-content {<!-- [et_pb_line_break_holder] -->    padding: 2px 14px 16px 52px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"upl-faq-header\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"upl-faq-title\">Google OAuth errors FAQ<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"upl-faq-subtitle\">Answers to the most common questions about Google OAuth errors and Gmail API errors, covering token lifecycle, admin policies, redirect URIs, and Google Cloud Console configuration.<\/pee><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"upl-faq-list\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item active\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"true\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">01<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">What does admin_policy_enforced mean?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee><strong>admin_policy_enforced<\/strong> means a Google Workspace super administrator has blocked your app or the specific OAuth scopes it requests from being authorized by users in that organization. It is an organizational access control policy, not a bug in your code. The fix requires action from the Workspace super admin in the Google Admin Console under <strong>Security &gt; API controls &gt; Manage Third-Party App Access<\/strong>.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">02<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Can a regular user fix admin_policy_enforced?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee><strong>No.<\/strong> A regular user cannot fix admin_policy_enforced. Only a Google Workspace <strong>super administrator<\/strong> can resolve this error by marking the app as Trusted in the Admin Console. The affected user needs to contact their IT administrator or Workspace super admin and request that the specific OAuth app be added to the approved list.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">03<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Why does redirect_uri_mismatch happen on localhost?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>The <strong>redirect_uri_mismatch<\/strong> on localhost happens when the URI you register in Google Cloud Console does not exactly match the URI your local development server uses. For example, registering <code>http:\/\/localhost:3000\/callback<\/code> but running on port 3001, or forgetting a trailing slash. Google allows <code>http:\/\/<\/code> (not just <code>https:\/\/<\/code>) for localhost URIs. Register the exact URI your local server uses, including the correct port number.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">04<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Does changing Authorized JavaScript origins fix redirect_uri_mismatch?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee><strong>No.<\/strong> Authorized JavaScript origins and Authorized redirect URIs are two separate fields. JavaScript origins are used for browser-side OAuth flows only. To fix <strong>redirect_uri_mismatch<\/strong>, you must add the URI to the <strong>Authorized redirect URIs<\/strong> field, not to JavaScript origins.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">05<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">How many redirect URIs can a Google OAuth client have?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>A single Google OAuth 2.0 client can have up to <strong>100 Authorized redirect URIs<\/strong> registered. This allows you to register URIs for different environments (local development, staging, production) and different callback paths within the same client.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">06<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Why do I get invalid_grant after a few days?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>If your app is in <strong>Testing publishing status<\/strong>, Google refresh tokens expire after <strong>7 days<\/strong> regardless of usage. This is by design for unverified apps. Move to Production status by clicking <strong>Publish App<\/strong> on the OAuth consent screen page to get long-lived tokens. In Production, refresh tokens remain valid as long as the user uses your app at least once every 6 months. For a managed alternative, visit our <a href=\"\/communication-api\/email-api\/gmail-api\/\" style=\"color:#2aaa7e;font-weight:600;text-decoration:underline;\">managed Gmail API solution<\/a>.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">07<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">How long before Google revokes an unused refresh token?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>Google revokes refresh tokens that have not been used for <strong>6 months<\/strong> (approximately 180 days). Tokens are also revoked when: the user changes their Google account password, the user revokes app access in their Google Account security settings, you re-authorize with different scopes, or the total refresh tokens for a single user-app pair exceeds 50 (oldest get revoked first). For the full picture on building robust email integrations, see our <a href=\"\/email-api-guide\/\" style=\"color:#2aaa7e;font-weight:600;text-decoration:underline;\">complete Email API guide<\/a>.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">08<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Why can&#8217;t I see the OAuth consent screen in Google Cloud Console?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>Google redesigned the Cloud Console in 2024. The OAuth consent screen configuration is now inside <strong>APIs &amp; Services &gt; OAuth overview<\/strong>. Click <strong>Edit App<\/strong> or use the Branding, Audience, and Scopes tabs. Also check: you need <strong>Editor or Owner role<\/strong> on the project (Viewer cannot access the form), and make sure you are on the correct project using the project selector at the top of the console.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"upl-faq-cta\"><!-- [et_pb_line_break_holder] -->    <pee class=\"upl-faq-cta-text\">Still hitting a Google OAuth error not listed here? Skip the debugging and let Unipile handle Gmail OAuth for you.<\/pee><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" class=\"upl-faq-cta-button\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\"><!-- [et_pb_line_break_holder] -->      Build Now<!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><!-- [et_pb_line_break_holder] -->        <polyline points=\"9 18 15 12 9 6\"><\/polyline><!-- [et_pb_line_break_holder] -->      <\/svg><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function initFaq(){<!-- [et_pb_line_break_holder] -->    var faq=document.getElementById('upl-goerr-faq');<!-- [et_pb_line_break_holder] -->    if(!faq)return;<!-- [et_pb_line_break_holder] -->    faq.querySelectorAll('.upl-faq-question').forEach(function(btn){<!-- [et_pb_line_break_holder] -->      btn.addEventListener('click',function(){<!-- [et_pb_line_break_holder] -->        var item=btn.closest('.upl-faq-item');<!-- [et_pb_line_break_holder] -->        var isActive=item.classList.contains('active');<!-- [et_pb_line_break_holder] -->        faq.querySelectorAll('.upl-faq-item').forEach(function(i){<!-- [et_pb_line_break_holder] -->          i.classList.remove('active');<!-- [et_pb_line_break_holder] -->          var q=i.querySelector('.upl-faq-question');<!-- [et_pb_line_break_holder] -->          if(q)q.setAttribute('aria-expanded','false');<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->        if(!isActive){<!-- [et_pb_line_break_holder] -->          item.classList.add('active');<!-- [et_pb_line_break_holder] -->          btn.setAttribute('aria-expanded','true');<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    \/\/ Divi link workaround for the CTA<!-- [et_pb_line_break_holder] -->    var cta=faq.querySelector('.upl-faq-cta-button');<!-- [et_pb_line_break_holder] -->    if(cta){<!-- [et_pb_line_break_holder] -->      cta.addEventListener('click',function(e){<!-- [et_pb_line_break_holder] -->        var href=this.getAttribute('data-upl-link')||this.getAttribute('href');<!-- [et_pb_line_break_holder] -->        if(href){e.preventDefault();window.open(href,'_blank');}<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if(document.readyState==='loading'){<!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded',initFaq);<!-- [et_pb_line_break_holder] -->  }else{<!-- [et_pb_line_break_holder] -->    initFaq();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/body><!-- [et_pb_line_break_holder] --><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>access_denied access_denied &#038; &#8220;This app is blocked&#8221; (unverified app) Users see a &#8220;This app is blocked&#8221; screen or receive access_denied in the OAuth callback. This one has multiple root causes depending on whether your app is still in Testing mode or targeting restricted scopes. The exact error message Access blocked: [Your App Name] has not [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[37],"tags":[],"post_folder":[],"class_list":["post-279033","post","type-post","status-publish","format-standard","hentry","category-cat-guides"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Common Google OAuth &amp; Gmail API Errors (and How to Fix Each One) - Unipile<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.unipile.com\/nl\/google-oauth-gmail-api-fouten\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Common Google OAuth &amp; Gmail API Errors (and How to Fix Each One) - Unipile\" \/>\n<meta property=\"og:description\" content=\"access_denied access_denied &amp; &quot;This app is blocked&quot; (unverified app) Users see a &quot;This app is blocked&quot; screen or receive access_denied in the OAuth callback. This one has multiple root causes depending on whether your app is still in Testing mode or targeting restricted scopes. The exact error message Access blocked: [Your App Name] has not [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.unipile.com\/nl\/google-oauth-gmail-api-fouten\/\" \/>\n<meta property=\"og:site_name\" content=\"Unipile\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/unipilefr\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-29T08:53:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-03T11:34:19+00:00\" \/>\n<meta name=\"author\" content=\"Damien Girardeau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@UnipileAPI\" \/>\n<meta name=\"twitter:site\" content=\"@UnipileAPI\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Damien Girardeau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"32 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/google-oauth-gmail-api-errors\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/google-oauth-gmail-api-errors\\\/\"},\"author\":{\"name\":\"Damien Girardeau\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/person\\\/a2ac44e22bdc27d497ce8b58716a673e\"},\"headline\":\"Common Google OAuth &#038; Gmail API Errors (and How to Fix Each One)\",\"datePublished\":\"2026-05-29T08:53:15+00:00\",\"dateModified\":\"2026-06-03T11:34:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/google-oauth-gmail-api-errors\\\/\"},\"wordCount\":6078,\"publisher\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\"},\"articleSection\":[\"Guides\"],\"inLanguage\":\"nl-NL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/google-oauth-gmail-api-errors\\\/\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/google-oauth-gmail-api-errors\\\/\",\"name\":\"Common Google OAuth & Gmail API Errors (and How to Fix Each One) - Unipile\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#website\"},\"datePublished\":\"2026-05-29T08:53:15+00:00\",\"dateModified\":\"2026-06-03T11:34:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/google-oauth-gmail-api-errors\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.unipile.com\\\/google-oauth-gmail-api-errors\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/google-oauth-gmail-api-errors\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.unipile.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Common Google OAuth &#038; Gmail API Errors (and How to Fix Each One)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#website\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/\",\"name\":\"Unipile\",\"description\":\"Integrate Messaging &amp; Email, Connect with Ease via API\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.unipile.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\",\"name\":\"Unipile\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/logo-unipile.png\",\"contentUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/logo-unipile.png\",\"width\":200,\"height\":49,\"caption\":\"Unipile\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/unipilefr\",\"https:\\\/\\\/x.com\\\/UnipileAPI\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/unipile\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/person\\\/a2ac44e22bdc27d497ce8b58716a673e\",\"name\":\"Damien Girardeau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g\",\"caption\":\"Damien Girardeau\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Veelvoorkomende Google OAuth &amp; Gmail API Fouten (en Hoe Elke Fout Te Oplossen) - Unipile","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.unipile.com\/nl\/google-oauth-gmail-api-fouten\/","og_locale":"nl_NL","og_type":"article","og_title":"Common Google OAuth & Gmail API Errors (and How to Fix Each One) - Unipile","og_description":"access_denied access_denied & \"This app is blocked\" (unverified app) Users see a \"This app is blocked\" screen or receive access_denied in the OAuth callback. This one has multiple root causes depending on whether your app is still in Testing mode or targeting restricted scopes. The exact error message Access blocked: [Your App Name] has not [&hellip;]","og_url":"https:\/\/www.unipile.com\/nl\/google-oauth-gmail-api-fouten\/","og_site_name":"Unipile","article_publisher":"https:\/\/www.facebook.com\/unipilefr","article_published_time":"2026-05-29T08:53:15+00:00","article_modified_time":"2026-06-03T11:34:19+00:00","author":"Damien Girardeau","twitter_card":"summary_large_image","twitter_creator":"@UnipileAPI","twitter_site":"@UnipileAPI","twitter_misc":{"Geschreven door":"Damien Girardeau","Geschatte leestijd":"32 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.unipile.com\/google-oauth-gmail-api-errors\/#article","isPartOf":{"@id":"https:\/\/www.unipile.com\/google-oauth-gmail-api-errors\/"},"author":{"name":"Damien Girardeau","@id":"https:\/\/www.unipile.com\/#\/schema\/person\/a2ac44e22bdc27d497ce8b58716a673e"},"headline":"Common Google OAuth &#038; Gmail API Errors (and How to Fix Each One)","datePublished":"2026-05-29T08:53:15+00:00","dateModified":"2026-06-03T11:34:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.unipile.com\/google-oauth-gmail-api-errors\/"},"wordCount":6078,"publisher":{"@id":"https:\/\/www.unipile.com\/#organization"},"articleSection":["Guides"],"inLanguage":"nl-NL"},{"@type":"WebPage","@id":"https:\/\/www.unipile.com\/google-oauth-gmail-api-errors\/","url":"https:\/\/www.unipile.com\/google-oauth-gmail-api-errors\/","name":"Veelvoorkomende Google OAuth &amp; Gmail API Fouten (en Hoe Elke Fout Te Oplossen) - Unipile","isPartOf":{"@id":"https:\/\/www.unipile.com\/#website"},"datePublished":"2026-05-29T08:53:15+00:00","dateModified":"2026-06-03T11:34:19+00:00","breadcrumb":{"@id":"https:\/\/www.unipile.com\/google-oauth-gmail-api-errors\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.unipile.com\/google-oauth-gmail-api-errors\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.unipile.com\/google-oauth-gmail-api-errors\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.unipile.com\/"},{"@type":"ListItem","position":2,"name":"Common Google OAuth &#038; Gmail API Errors (and How to Fix Each One)"}]},{"@type":"WebSite","@id":"https:\/\/www.unipile.com\/#website","url":"https:\/\/www.unipile.com\/","name":"Eenpaal","description":"Integreer berichten en e-mail, maak eenvoudig verbinding via API","publisher":{"@id":"https:\/\/www.unipile.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.unipile.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/www.unipile.com\/#organization","name":"Eenpaal","url":"https:\/\/www.unipile.com\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/www.unipile.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2021\/05\/logo-unipile.png","contentUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2021\/05\/logo-unipile.png","width":200,"height":49,"caption":"Unipile"},"image":{"@id":"https:\/\/www.unipile.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/unipilefr","https:\/\/x.com\/UnipileAPI","https:\/\/www.linkedin.com\/company\/unipile\/"]},{"@type":"Person","@id":"https:\/\/www.unipile.com\/#\/schema\/person\/a2ac44e22bdc27d497ce8b58716a673e","name":"Damien Girardeau","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/secure.gravatar.com\/avatar\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g","caption":"Damien Girardeau"}}]}},"_links":{"self":[{"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/posts\/279033","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/comments?post=279033"}],"version-history":[{"count":14,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/posts\/279033\/revisions"}],"predecessor-version":[{"id":279138,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/posts\/279033\/revisions\/279138"}],"wp:attachment":[{"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/media?parent=279033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/categories?post=279033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/tags?post=279033"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/post_folder?post=279033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}