Subject: Obscure epa-file error message
From: Stefan Monnier <[email-masked]>
To: [email-masked]
Date: Fri, 05 Aug 2011 23:21:43 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Recently I started having trouble saving my .gpg files.

At first I figured "bah probably some transient bug in Emacs trunk", but
after trying it out with emacs23, I see the problem is not in
Emacs trunk.
The error I get is (see the appended backtrace):

Opening output file: Encrypt failed: ((exit) (invalid-recipient (reason . 0) (requested-recipient . "36DB083C608CC24C")))

It turns out the problem was simply that my encryption key was expired.
Could someone figure out how to get a more helpful error message?

        Stefan

Debugger entered--Lisp error: (file-error "Opening output file" "Encrypt failed: ((exit) (invalid-recipient (reason . 0) (requested-recipient . \"36DB083C608CC24C\")))")
  signal(file-error ("Opening output file" "Encrypt failed: ((exit) (invalid-recipient (reason . 0) (requested-recipient . \"36DB083C608CC24C\")))"))
  byte-code("\304	\"\211\203\n\305\241\210\306\307\310AB\"\207" [file epa-file-passphrase-alist entry error assoc nil signal file-error "Opening output file"] 4)
  epa-file-write-region(nil nil "/home/monnier/share/misc/test2.gpg" nil t)
  apply(epa-file-write-region (nil nil "/home/monnier/share/misc/test2.gpg" nil t))
  epa-file-handler(write-region nil nil "/home/monnier/share/misc/test2.gpg" nil t)
  write-region(nil nil "/home/monnier/share/misc/test2.gpg" nil t "~/share/misc/test2.gpg")
  basic-save-buffer-2()
  basic-save-buffer-1()
  basic-save-buffer()
  save-buffer(1)
  call-interactively(save-buffer nil nil)

In GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2011-08-05 on ceviche
Windowing system distributor `The X.Org Foundation', version 11.0.11002000
configured using `configure  'CFLAGS=-Wall -Wno-pointer-sign -DUSE_LISP_UNION_TYPE -DSYNC_INPUT -DENABLE_CHECKING -DXASSERTS -DFONTSET_DEBUG -g -O1 -I/usr/include/GNUstep' '--enable-maintainer-mode' '--with-x-toolkit=lucid''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: fr_CH.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Group

Minor modes in effect:
  diff-auto-refine-mode: t
  gnus-undo-mode: t
  electric-pair-mode: t
  electric-indent-mode: t
  url-handler-mode: t
  global-reveal-mode: t
  reveal-mode: t
  auto-insert-mode: t
  savehist-mode: t
  minibuffer-electric-default-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
n c e SPC a n d SPC n o t SPC f o r SPC t y p e - c 
h e c k i n g SPC <backspace> , SPC w e SPC c o u l 
d SPC l e t SPC u s w <backspace> e r s SPC " p o s 
t u l a t e " SPC t h e SPC i n v e r t i b i l i t 
y <M-backspace> <backspace> <backspace> a t SPC a SPC 
p a r t i c u l a r SPC f u n c t i o n SPC i s SPC 
i n j e c t i v e <help-echo> SPC a n d SPC t h e n 
SPC l e t SPC t h e SPC u n i i f c a t i o n SPC u 
s e SPC i t <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
C-t C-e SPC d u r i n g SPC t y p e SPC i n f e r e 
n c e . <switch-frame> <switch-frame> SPC SPC <backspace> 
<backspace> <return> <return> <return> M-i S t e f 
a n C-c C-c <up> q s c y s g <up> <up> <up> <up> <up> 
<up> <up> <up> <down> <down> <down> <return> <return> 
n n q s <return> <return> SPC <select-window> <select-window> 
k q s <return> <return> q s c y s <select-window> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <down-mouse-1> <mouse-movement> 
<mouse-2> <switch-frame> <switch-frame> <down-mouse-2> 
<mouse-2> <switch-frame> <switch-frame> C-p C-a C-k 
C-k C-x C-s <switch-frame> g <help-echo> <select-window> 
<select-window> <select-window> M-x r e p o r - e m 
- b u g <tab> <return>

Recent messages:
nnimap read 25k [98 times]
nnimap read 29k [233 times]
nnimap read 33k [1465 times]
nnimap read 34k [3 times]
nnimap read 39k [100 times]
nnimap read 42k [505 times]
nnimap read 43k [5 times]
Reading active file via nndraft...done
Checking new news...done
Warning: interactive-p is obsolete! [5 times]

Load-path shadows:
None found.

Features:
(shadow emacsbug descr-text footnote multi-isearch dabbrev nnfolder
mailalias sendmail canlock supercite regi flow-fill gnus-html browse-url
url-cache mm-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-util pp org-remember org-datetree org-publish
org-protocol org-mouse org-mobile org-indent org-freemind xml org-feed
org-crypt org-capture org-mks org-attach org-id cus-edit cus-start
cus-load vc-bzr filecache org-wl org-w3m org-vm org-rmail org-mhe
org-mew org-irc org-jsinfo org-infojs org-html org-exp ob-exp
org-exp-blocks org-agenda org-info org-gnus org-docview org-bibtex
bibtex org-bbdb org ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table
org-footnote org-src ob-comint comint ring ob-keys ob ob-eval
org-pcomplete pcomplete org-list org-faces org-compat org-entities
org-macs cal-menu calendar cal-loaddefs mule-util diff-mode jka-compr
sort smiley ansi-color gnus-cite mail-extr gnus-bcklg executable
copyright gnus-async qp gnus-ml nndraft nnmh rfc2104 gnutls
network-stream starttls nnimap parse-time tls utf7 netrc nnagent nnml
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
mm-uu mml2015 epg-config mm-view mml-smime smime dig mailcap nntp
gnus-cache nnir gnus-sum nnoo gnus-group gnus-undo nnmail mail-source
server gnus-start gnus-spec gnus-int gnus-range message format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
gnus-ems nnheader mail-utils wid-edit noutline outline easy-mmode
flyspell ispell eldoc checkdoc regexp-opt thingatpt help-mode view
prog-mode load-dir electric url-handlers url-parse auth-source warnings
eieio byte-opt bytecomp byte-compile cconv macroexp assoc gnus-util
password-cache url-vars mm-util mail-prsvr reveal autoinsert uniquify
advice help-fns advice-preload time-date savehist minibuf-eldef
disp-table cl cl-loaddefs all-autoloads company-autoloads
debbugs-autoloads epoch-view-autoloads js2-mode-autoloads
load-dir-autoloads markchars-autoloads minimap-autoloads muse-autoloads
info easymenu rainbow-mode-autoloads register-list-autoloads
sisu-mode-autoloads uni-confusables-autoloads windresize-autoloads
package tabulated-list proof-site proof-autoloads pg-vars bbdb-autoloads
agda2 tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd
tool-bar dnd fontset image fringe lisp-mode register page newcomment
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting system-font-setting
font-render-setting x-toolkit x multi-tty emacs)