Wixoss-LinkageやD0-RSSでは、同じユーザ名では登録できないようにしていました。
具体的には、ユーザのmodelで、validates :uniqueness=>true でチェックしていました。

この度、すでに「パパ」というユーザ名がいると、「ハハ」や「ババ」のような濁音・半濁音違いの文字が同一と扱われてエラーになる問題が発生(「パパ」なら「すでにパパは使われています」のエラーメッセージを出せていたのですが、濁音・半濁音違いだとそのメッセージする表示されず、内部エラーページになってしまっていました)。

その問題の解決方法。

***

原因はMySQLのCollation設定


調べた結果、原因はMyAQLのCollation(照合順序)の設定でした。
Railsだと、Collationの初期設定はutf8_unicode_ciでした。
参考: utf8_unicode_ci に対する日本の開発者の見解 | かみぽわーる

utf8_unicode_ciは、日本語の濁音・半濁音を区別しない照合であることが原因でした。
その設定をutf8_general_ciにすれば良いようです。
2つの設定の違いは以下のリンクがわかりやすいです。
参考: utf8_general_ciとutf8_unicode_ci | 技術メモ帳

MySQLのCollationの設定を変える


データベースを作る前なら、railsのdatabase.ymlの設定からデフォルトのCollationを変えるのが良さそうです。
参考: ActiveRecordでデフォルトの照合順序を変更する | Qiita

一方で、すでに運用中のデータベースのCollationを変更するには、下記のリンクが参考になりました。
参考: MySQLの照合順序を修正する | Qiita

まさにドンピシャな内容。
リンク先にも手順は書かれていますが、コチラでもなぞっていきます。
(適宜、database名やtable名は読み替えて)

rails dbコマンドでdatabaseに接続

rails db production

(production環境のdatabaseなので、それを指定。パスワードを聞かれるので入力してdatabaseに接続)

該当のテーブルのカラムの属性を確認

show databases;
USE my_database;
show tables;
SHOW FULL COLUMNS FROM user_table;

これでuser_tableのカラム属性の一覧が表示される。
問題のhandle_nameカラムのCollationがutf8_unicode_ciになっている。

カラムのCollationを変更

ALTER TABLE user_table MODIFY COLUMN handle_name varchar(255) COLLATE 'utf8_general_ci';

handle_nameのカラムのCollationをutf8_general_ciに変更。
カラム名「handle_name」のあとに、カラムの型「textやvarchar(255)など」を指定することに注意。

変更されているか再度確認

SHOW FULL COLUMNS FROM user_table;

これでOKでした。

開発中は気づきにくい


開発中は、mysqlではなくsqlite3のデータベースを用いており、sqlite3の方ではこの問題が起こっていませんでした。それが今まで問題に気づかなかった要因の一つでした。