# Mail by unknown user to group causes error

**URL:** https://meta.discourse.org/t/mail-by-unknown-user-to-group-causes-error/38945
**Category:** Bug
**Created:** [2 בפברואר,‏ 2016,‏ 11:00pm UTC](https://meta.discourse.org/t/mail-by-unknown-user-to-group-causes-error/38945 "2016-02-02T23:00:09Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Sander78](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sander78/32/296615_2.png) [@Sander78](https://meta.discourse.org/u/Sander78)
#### Post date: [2 בפברואר,‏ 2016,‏ 11:00pm UTC](https://meta.discourse.org/t/mail-by-unknown-user-to-group-causes-error/38945/1 "2016-02-02T23:00:09Z")

</div>

`Email can not be processed: PG::NotNullViolation: ERROR: null value in column "last_post_user_id" violates not-null constraint DETAIL: Failing row contains (796, Test 23:20, null, 20`

and

`Job exception: PG::NotNullViolation: ERROR: null value in column "last_post_user_id" violates not-null constraint DETAIL: Failing row contains (796, Test 23:20, null, 2016-02-02 22:20:28, 2016-02-02`

Trace of the last error:

```plaintext
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-mini-profiler-0.9.8/lib/patches/db/pg.rb:90:in `exec'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-mini-profiler-0.9.8/lib/patches/db/pg.rb:90:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `block in exec_no_cache'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:466:in `log'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `exec_no_cache'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql_adapter.rb:584:in `execute_and_clear'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:160:in `exec_query'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:192:in `exec_insert'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract/database_statements.rb:108:in `insert'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract/query_cache.rb:14:in `insert'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/relation.rb:64:in `insert'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/persistence.rb:524:in `_create_record'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/counter_cache.rb:139:in `_create_record'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/locking/optimistic.rb:75:in `_create_record'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/attribute_methods/dirty.rb:132:in `_create_record'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/callbacks.rb:306:in `block in _create_record'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:117:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:117:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:92:in ` __run_callbacks__'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:778:in `_run_create_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/callbacks.rb:306:in `_create_record'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/timestamp.rb:57:in `_create_record'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/persistence.rb:504:in `create_or_update'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/callbacks.rb:302:in `block in create_or_update'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:117:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:117:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:92:in ` __run_callbacks__'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:778:in `_run_save_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/callbacks.rb:302:in `create_or_update'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/persistence.rb:120:in `save'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/validations.rb:37:in `save'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/attribute_methods/dirty.rb:21:in `save'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/transactions.rb:286:in `block (2 levels) in save'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/transactions.rb:351:in `block in with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract/database_statements.rb:211:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/transactions.rb:220:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/transactions.rb:348:in `with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/transactions.rb:286:in `block in save'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/transactions.rb:301:in `rollback_active_record_state!'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/transactions.rb:285:in `save'
/var/www/discourse/lib/topic_creator.rb:160:in `save_topic'
/var/www/discourse/lib/topic_creator.rb:40:in `create'
/var/www/discourse/lib/post_creator.rb:289:in `create_topic'
/var/www/discourse/lib/post_creator.rb:126:in `block in create'
/var/www/discourse/lib/post_creator.rb:227:in `call'
/var/www/discourse/lib/post_creator.rb:227:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5.1/lib/active_record/transactions.rb:220:in `transaction'
/var/www/discourse/lib/post_creator.rb:225:in `transaction'
/var/www/discourse/lib/post_creator.rb:124:in `create'
/var/www/discourse/lib/new_post_manager.rb:148:in `perform_create_post'
/var/www/discourse/lib/new_post_manager.rb:109:in `perform'
/var/www/discourse/lib/email/receiver.rb:324:in `create_post'
/var/www/discourse/lib/email/receiver.rb:305:in `create_post_with_attachments'
/var/www/discourse/lib/email/receiver.rb:255:in `create_topic'
/var/www/discourse/lib/email/receiver.rb:72:in `process_internal'
/var/www/discourse/lib/email/receiver.rb:34:in `process'
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:26:in `process_popmail'
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:81:in `block (2 levels) in poll_pop3'
/usr/local/lib/ruby/2.0.0/net/pop.rb:688:in `block in delete_all'
/usr/local/lib/ruby/2.0.0/net/pop.rb:687:in `each'
/usr/local/lib/ruby/2.0.0/net/pop.rb:687:in `delete_all'
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:80:in `block in poll_pop3'
/usr/local/lib/ruby/2.0.0/net/pop.rb:531:in `start'
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:79:in `poll_pop3'
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:15:in `execute'
/var/www/discourse/app/jobs/base.rb:154:in `block (2 levels) in perform'

```

This is a multisite installation and this happened in the primary instance. It seemed the sender address was lost in the process:  
 ![](https://global.discourse-cdn.com/meta/original/3X/4/e/4e969e310563261e17413633763d097ad693595b.png)

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [2 בפברואר,‏ 2016,‏ 11:33pm UTC](https://meta.discourse.org/t/mail-by-unknown-user-to-group-causes-error/38945/2 "2016-02-02T23:33:33Z")

</div>

Are you running latest? I recently (_yesterday_) changed the email processor to always log the **from** email address.

---

<div class="post-metadata">

### Author: ![Sander78](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sander78/32/296615_2.png) [@Sander78](https://meta.discourse.org/u/Sander78)
#### Post date: [2 בפברואר,‏ 2016,‏ 11:35pm UTC](https://meta.discourse.org/t/mail-by-unknown-user-to-group-causes-error/38945/3 "2016-02-02T23:35:12Z")

</div>

Yes, I am. I rebuilt the whole thing just a few hours ago. I have [this one](https://github.com/discourse/discourse/tree/bcc0ed7c9c2950ddd5771772b873cc08795030a0).

---

<div class="post-metadata">

### Author: ![Sander78](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sander78/32/296615_2.png) [@Sander78](https://meta.discourse.org/u/Sander78)
#### Post date: [3 בפברואר,‏ 2016,‏ 11:18am UTC](https://meta.discourse.org/t/mail-by-unknown-user-to-group-causes-error/38945/4 "2016-02-03T11:18:53Z")

</div>

A more thorough error:

```plaintext
PG::NotNullViolation: ERROR: null value in column "last_post_user_id" violates not-null constraint DETAIL: Failing row contains (800, Test 12:10, null, 2016-02-03 11:10:44, 2016-02-03 11:14:30.378542, 0, 0, null, null, 0, null, null, null, null, null, 0, null, 0, 0, 0, 0, null, t, 0, f, f, 2016-02-03 11:14:30.378821, f, 0, private_message, null, 0, 0, 0, 0, null, null, 1, 0, user_to_user, test-12-10, null, null, null, null, 1, null, null, f, f, null, null, Test 12:10). : INSERT INTO "topics" ("slug", "title", "archetype", "created_at", "subtype", "fancy_title", "updated_at", "bumped_at") VALUES ('test-12-10', 'Test 12:10', 'private_message', '2016-02-03 11:10:44.000000', 'user_to_user', 'Test 12:10', '2016-02-03 11:14:30.378542', '2016-02-03 11:14:30.378821') RETURNING "id"

```

Edit: @zogstrip, I think I figured it out. Turns out I had a few domains whitelisted for mail. And of course only those are accepted to create a new account. However, the group mailing doesn’t take that into account. The account creation fails, but the group mailing part of Discourse tries to carry on.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [10 בספטמבר,‏ 2016,‏ 5:21am UTC](https://meta.discourse.org/t/mail-by-unknown-user-to-group-causes-error/38945/5 "2016-09-10T05:21:40Z")

</div>


