<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi,</p>
    <p>I'm trying to convert my existing users to a more modern password
      scheme by following the how-to at
      <a class="moz-txt-link-freetext" href="https://wiki.dovecot.org/HowTo/ConvertPasswordSchemes">https://wiki.dovecot.org/HowTo/ConvertPasswordSchemes</a>.</p>
    <p>One of the steps is to include the use of '%w' in the
      password_query, like so:</p>
    <blockquote>
      <p>password_query = \<br>
          SELECT domain, password, '%w' AS userdb_plain_pass, \<br>
          domain as userdb_domain, concat('*:storage=', quota) AS
        userdb_quota_rule, 5000 as userdb_uid, 5000 as userdb_gid,
        '/home/%d/%n' as userdb_home \<br>
          FROM users WHERE (catch='%n' AND domain='%d')</p>
    </blockquote>
    <p>and also to configure:</p>
    <blockquote>
      <p>userdb {<br>
          driver = prefetch<br>
        }</p>
    </blockquote>
    <p>in order to combine the user/password_query into one. Now that
      all seemed to work well, except for one thing.<br>
      When a user has a % sign in their password, the following error
      occurs:</p>
    <blockquote>
      <p>Error: Failed to expand plugin setting plain_pass =
        'Tfew3322gYEp$%5Qjk0': Unknown variable '%Q'<br>
      </p>
    </blockquote>
    <p>Which indicates that dovecot is trying to expand variables in the
      password.</p>
    <p>As a consequence, the login process fails.</p>
    <p>Is there some way around this behavior?</p>
    <p>Thanks in advance,</p>
    <p>Filidor Wiese<br>
    </p>
  </body>
</html>